import unittest from app.database import _deduplicate_rows_by_key class SectorImportTests(unittest.TestCase): def test_duplicate_cgi_uses_last_uploaded_row(self): columns = ["CGI", "扇区", "物理站"] rows = [ ("460-00-1-1", "旧扇区", "旧物理站"), ("460-00-2-1", "新增扇区", "新增物理站"), ("460-00-1-1", "新扇区", "新物理站"), ] result, duplicate_count = _deduplicate_rows_by_key(columns, rows, "CGI") self.assertEqual(duplicate_count, 1) self.assertEqual(result, [ ("460-00-1-1", "新扇区", "新物理站"), ("460-00-2-1", "新增扇区", "新增物理站"), ]) def test_blank_cgi_is_rejected(self): with self.assertRaisesRegex(ValueError, "第 2 行 CGI 为空"): _deduplicate_rows_by_key(["CGI", "扇区"], [(" ", "扇区1")], "CGI") def test_missing_cgi_column_is_rejected(self): with self.assertRaisesRegex(ValueError, "缺少业务键字段: CGI"): _deduplicate_rows_by_key(["扇区"], [("扇区1",)], "CGI") if __name__ == "__main__": unittest.main()