test_sample_info_quick_register.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. """样本信息列表快捷登记:去重与入库字段规范化。"""
  2. import unittest
  3. from datetime import datetime
  4. from app.services.sample_info_quick_register import (
  5. apply_quick_storage_payload,
  6. unique_nonempty_ids,
  7. )
  8. class TestUniqueNonemptyIds(unittest.TestCase):
  9. def test_keeps_order_and_drops_blank_dupes(self):
  10. self.assertEqual(
  11. unique_nonempty_ids([" a ", "b", "a", "", None, "b"]),
  12. ["a", "b"],
  13. )
  14. def test_empty(self):
  15. self.assertEqual(unique_nonempty_ids([]), [])
  16. class TestApplyQuickStoragePayload(unittest.TestCase):
  17. def test_requires_handle_time(self):
  18. with self.assertRaises(ValueError):
  19. apply_quick_storage_payload(
  20. handle_time=None, handler_user_id="u1", attachments="", remark=""
  21. )
  22. def test_maps_to_stored_fields(self):
  23. ht = datetime(2026, 10, 6, 10, 30, 0)
  24. out = apply_quick_storage_payload(
  25. handle_time=ht,
  26. handler_user_id="u1",
  27. attachments="http://f.pdf",
  28. remark="ok",
  29. )
  30. self.assertEqual(out["storage_status"], "yrk")
  31. self.assertEqual(out["storage_time"], ht)
  32. self.assertEqual(out["storage_by"], "u1")
  33. self.assertEqual(out["storage_in_date"], "20261006")
  34. self.assertEqual(out["attachments"], "http://f.pdf")
  35. self.assertEqual(out["remark"], "ok")