feat: 增加上一周期干扰对比字段
This commit is contained in:
+25
-1
@@ -49,10 +49,12 @@ class PipelineTest(unittest.TestCase):
|
||||
"cgi",
|
||||
"cell_name",
|
||||
"interference_dbm",
|
||||
"prev_interference_dbm",
|
||||
"longitude",
|
||||
"latitude",
|
||||
"azimuth",
|
||||
"nearby_count",
|
||||
"prev_nearby_count",
|
||||
],
|
||||
)
|
||||
rows_by_type = {row["cell_name"].removesuffix("-小区"): row for row in rows}
|
||||
@@ -65,6 +67,8 @@ class PipelineTest(unittest.TestCase):
|
||||
for source_type in set(main.EXPECTED_TYPES) - {"5G干扰监控", "700M干扰监控"}:
|
||||
self.assertEqual(rows_by_type[source_type]["cgi"], "460-00-100-1")
|
||||
self.assertTrue(all(row["interference_dbm"] == "-100.5" for row in rows))
|
||||
self.assertTrue(all(row["prev_interference_dbm"] == "" for row in rows))
|
||||
self.assertTrue(all(row["prev_nearby_count"] == "" for row in rows))
|
||||
self.assertEqual(rows_by_type["5G干扰监控"]["longitude"], "113.123456")
|
||||
self.assertEqual(rows_by_type["5G干扰监控"]["latitude"], "22.654321")
|
||||
self.assertEqual(rows_by_type["5G干扰监控"]["azimuth"], "30")
|
||||
@@ -222,6 +226,22 @@ class PipelineTest(unittest.TestCase):
|
||||
self.assertLess(main.haversine_distance_km(113.0, 22.0, 113.005, 22.0), 1.0)
|
||||
self.assertGreater(main.haversine_distance_km(113.0, 22.0, 113.02, 22.0), 1.0)
|
||||
|
||||
def test_previous_values_are_matched_by_cgi(self) -> None:
|
||||
rows = [database_row(), database_row()]
|
||||
rows[0]["cgi"] = "matched"
|
||||
rows[1]["cgi"] = "new"
|
||||
previous = database_row()
|
||||
previous["cgi"] = "matched"
|
||||
previous["interference_dbm"] = "-106.25"
|
||||
previous["nearby_count"] = "8"
|
||||
|
||||
main.populate_previous_values(rows, [previous])
|
||||
|
||||
self.assertEqual(rows[0]["prev_interference_dbm"], "-106.25")
|
||||
self.assertEqual(rows[0]["prev_nearby_count"], "8")
|
||||
self.assertEqual(rows[1]["prev_interference_dbm"], "")
|
||||
self.assertEqual(rows[1]["prev_nearby_count"], "")
|
||||
|
||||
def test_api_store_replaces_same_hour_and_deletes_other_hours(self) -> None:
|
||||
client = FakeApiClient("2026-07-31T10:00:00")
|
||||
store = main.ApiSummaryStore(client, "db_share_mysql")
|
||||
@@ -239,10 +259,12 @@ class PipelineTest(unittest.TestCase):
|
||||
self.assertTrue(any("ADD COLUMN `latitude`" in query for query in queries))
|
||||
self.assertTrue(any("ADD COLUMN `azimuth`" in query for query in queries))
|
||||
self.assertTrue(any("ADD COLUMN `nearby_count`" in query for query in queries))
|
||||
self.assertTrue(any("ADD COLUMN `prev_interference_dbm`" in query for query in queries))
|
||||
self.assertTrue(any("ADD COLUMN `prev_nearby_count`" in query for query in queries))
|
||||
script = next(payload for endpoint, payload in client.posts if endpoint.endswith("/run-script"))
|
||||
self.assertTrue(script["single_session"])
|
||||
self.assertIn("START TRANSACTION", script["content"])
|
||||
self.assertIn("NULL, NULL, 0, 0", script["content"])
|
||||
self.assertIn("NULL, NULL, NULL, 0, 0, NULL", script["content"])
|
||||
self.assertIn("CONVERT(0x", script["content"])
|
||||
self.assertNotIn("source_type", script["content"])
|
||||
self.assertNotIn("source_path", script["content"])
|
||||
@@ -447,10 +469,12 @@ def database_row() -> dict[str, str]:
|
||||
"cgi": "460-00-200-1",
|
||||
"cell_name": "测试小区",
|
||||
"interference_dbm": "-100.5",
|
||||
"prev_interference_dbm": "",
|
||||
"longitude": "",
|
||||
"latitude": "",
|
||||
"azimuth": "0",
|
||||
"nearby_count": "0",
|
||||
"prev_nearby_count": "",
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user