Files
CapacityReport/tests/test_database_import.py

34 lines
1.1 KiB
Python

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()