test_temp_qc_target_resolve.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. """临时质检对象:系统产品 / 外部编号互斥归一化。"""
  2. import unittest
  3. from app.crud.temp_qc_target import resolve_temp_qc_target
  4. class TestResolveTempQcTarget(unittest.TestCase):
  5. def test_cell_product_only(self):
  6. cp, ext = resolve_temp_qc_target(
  7. cell_product_id=" pid-1 ", external_target_code=" "
  8. )
  9. self.assertEqual(cp, "pid-1")
  10. self.assertIsNone(ext)
  11. def test_external_only(self):
  12. cp, ext = resolve_temp_qc_target(
  13. cell_product_id="", external_target_code=" EXT-1 "
  14. )
  15. self.assertIsNone(cp)
  16. self.assertEqual(ext, "EXT-1")
  17. def test_both_raises(self):
  18. with self.assertRaises(ValueError) as ctx:
  19. resolve_temp_qc_target(
  20. cell_product_id="pid", external_target_code="EXT"
  21. )
  22. self.assertIn("不能同时", str(ctx.exception))
  23. def test_neither_raises(self):
  24. with self.assertRaises(ValueError) as ctx:
  25. resolve_temp_qc_target(cell_product_id="", external_target_code="")
  26. self.assertIn("质检对象", str(ctx.exception))
  27. def test_external_too_long(self):
  28. with self.assertRaises(ValueError) as ctx:
  29. resolve_temp_qc_target(
  30. cell_product_id="", external_target_code="x" * 65
  31. )
  32. self.assertIn("64", str(ctx.exception))
  33. if __name__ == "__main__":
  34. unittest.main()