"""储存证质检字段 ACL:合法字段与 scope。""" import unittest from app.services.sample_storage_cert_qc import ( ACL_SCOPE_PRODUCTION, ACL_SCOPE_QC, ALL_STORAGE_CERT_QC_FIELD_KEYS, SAMPLE_TYPE_KEY_UC_MSC, dumps_field_keys, legal_field_keys_for_type, loads_field_keys, ) class TestAclFieldKeys(unittest.TestCase): def test_uc_msc_excludes_mother_nucleic_acids(self): keys = legal_field_keys_for_type(SAMPLE_TYPE_KEY_UC_MSC) self.assertNotIn("mother_hbv_dna", keys) self.assertIn("mother_hbsag", keys) def test_roundtrip_field_keys(self): raw = dumps_field_keys(["receive_time", "bacteria_test", "receive_time", ""]) self.assertEqual(loads_field_keys(raw), ["bacteria_test", "receive_time"]) def test_all_keys_cover_common_fields(self): self.assertIn("receive_time", ALL_STORAGE_CERT_QC_FIELD_KEYS) self.assertIn("mother_anti_hiv", ALL_STORAGE_CERT_QC_FIELD_KEYS) def test_scopes(self): self.assertEqual(ACL_SCOPE_QC, "qc") self.assertEqual(ACL_SCOPE_PRODUCTION, "production") if __name__ == "__main__": unittest.main()