Files
zkxw/backend/tests/test_sample_storage_cert_qc_acl.py
T
zlwuandCursor 529f36eac6 feat(cell-storage): 储存证质检字段级质检/生产权限
按方案 A 增加租户级 ACL(字段+人员),详情返回可编辑字段,保存改为服务端 merge;弹窗 footer 提供权限配置入口。关联 #93。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-11 16:13:20 +08:00

36 lines
1.1 KiB
Python

"""储存证质检字段 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()