import unittest from app.utils.production_task_name_placeholders import ( LAB_STORAGE_CODE_PLACEHOLDER, apply_task_name_placeholders, revert_task_name_placeholders, ) class TestApplyTaskNamePlaceholders(unittest.TestCase): def test_replaces_with_code(self): self.assertEqual( apply_task_name_placeholders( f"{LAB_STORAGE_CODE_PLACEHOLDER}样本处理", lab_storage_code="LS001", ), "LS001样本处理", ) def test_empty_code_becomes_empty_string(self): self.assertEqual( apply_task_name_placeholders( f"{LAB_STORAGE_CODE_PLACEHOLDER}样本处理", lab_storage_code="", ), "样本处理", ) def test_no_placeholder_unchanged(self): self.assertEqual( apply_task_name_placeholders("常规分装", lab_storage_code="LS001"), "常规分装", ) def test_unknown_placeholder_kept(self): self.assertEqual( apply_task_name_placeholders("{unknown}处理", lab_storage_code="LS001"), "{unknown}处理", ) def test_multiple_occurrences(self): self.assertEqual( apply_task_name_placeholders( f"{LAB_STORAGE_CODE_PLACEHOLDER}-{LAB_STORAGE_CODE_PLACEHOLDER}", lab_storage_code="A", ), "A-A", ) class TestRevertTaskNamePlaceholders(unittest.TestCase): def test_reverts_code_to_placeholder(self): self.assertEqual( revert_task_name_placeholders("LS001样本处理", lab_storage_code="LS001"), f"{LAB_STORAGE_CODE_PLACEHOLDER}样本处理", ) def test_multiple_occurrences(self): self.assertEqual( revert_task_name_placeholders("前LS001后LS001", lab_storage_code="LS001"), f"前{LAB_STORAGE_CODE_PLACEHOLDER}后{LAB_STORAGE_CODE_PLACEHOLDER}", ) def test_empty_code_no_change(self): self.assertEqual( revert_task_name_placeholders("LS001样本处理", lab_storage_code=""), "LS001样本处理", ) def test_code_not_in_name(self): self.assertEqual( revert_task_name_placeholders("常规分装", lab_storage_code="LS001"), "常规分装", ) if __name__ == "__main__": unittest.main()