fix: prevent tdengine raw frame overwrite
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
lingniu
2026-06-29 18:41:58 +08:00
parent 5c1c61f29b
commit 8804c01d99
9 changed files with 422 additions and 6 deletions

View File

@@ -58,6 +58,32 @@ class Gb32960E2ESmokeTest(unittest.TestCase):
self.assertEqual(uri, "archive://2026/06/29/GB32960/LTEST/frame.bin")
def test_raw_frame_count_sql_filters_by_vin_and_raw_uri(self):
info = smoke.FrameInfo("LTEST202606290001", 0x02, None)
sql = smoke.raw_frame_count_sql(info, [
{"rawArchiveUri": "archive://2026/06/29/GB32960/LTEST202606290001/frame.bin"},
])
self.assertEqual(
sql,
"SELECT COUNT(*) FROM raw_frames WHERE protocol = 'GB32960' "
"AND vehicle_key = 'LTEST202606290001' "
"AND vin = 'LTEST202606290001' "
"AND raw_uri = 'archive://2026/06/29/GB32960/LTEST202606290001/frame.bin'",
)
def test_raw_frame_count_sqls_include_each_unique_record_raw_uri(self):
info = smoke.FrameInfo("LTEST202606290001", 0x02, None)
sqls = smoke.raw_frame_count_sqls(info, [
{"rawArchiveUri": "archive://2026/06/29/GB32960/LTEST202606290001/frame-1.bin"},
{"rawArchiveUri": "archive://2026/06/29/GB32960/LTEST202606290001/frame-2.bin"},
{"rawArchiveUri": "archive://2026/06/29/GB32960/LTEST202606290001/frame-1.bin"},
])
self.assertEqual(len(sqls), 2)
self.assertTrue(sqls[0].endswith("frame-1.bin'"))
self.assertTrue(sqls[1].endswith("frame-2.bin'"))
def test_check_archive_ignores_duplicate_uris(self):
with tempfile.TemporaryDirectory() as temp_dir:
root = pathlib.Path(temp_dir)