MCS cert identified by evidence_category in get_core_file_type 🟥

This commit is contained in:
Daniel Roth 2026-06-02 14:20:35 +00:00
parent 5df874b978
commit ca224515f9
3 changed files with 40 additions and 1 deletions

View file

@ -21,6 +21,7 @@ class FileTypeEnum(enum.Enum):
IMPROVEMENT_OPTION_EVALUATION = "improvement_option_evaluation"
MEDIUM_TERM_IMPROVEMENT_PLAN = "medium_term_improvement_plan"
RETROFIT_DESIGN_DOC = "retrofit_design_doc"
MCS_CERTIFICATE = "mcs_certificate"
OTHER = "other"

View file

@ -17,6 +17,7 @@ class CoreFiles(Enum):
IMPROVEMENT_OPTION_EVALUATION = "Improvement Option Evaluation"
MEDIUM_TERM_IMPROVEMENT_PLAN = "Medium Term Improvement Plan"
RETROFIT_DESIGN_DOC = "Retrofit Design Doc"
MCS_CERTIFICATE = "MCS Certificate"
_CORE_FILE_TO_FILE_TYPE: dict[CoreFiles, str] = {
@ -32,6 +33,7 @@ _CORE_FILE_TO_FILE_TYPE: dict[CoreFiles, str] = {
CoreFiles.IMPROVEMENT_OPTION_EVALUATION: FileTypeEnum.IMPROVEMENT_OPTION_EVALUATION.value,
CoreFiles.MEDIUM_TERM_IMPROVEMENT_PLAN: FileTypeEnum.MEDIUM_TERM_IMPROVEMENT_PLAN.value,
CoreFiles.RETROFIT_DESIGN_DOC: FileTypeEnum.RETROFIT_DESIGN_DOC.value,
CoreFiles.MCS_CERTIFICATE: FileTypeEnum.MCS_CERTIFICATE.value,
}
@ -56,6 +58,7 @@ def get_core_file_type(
CoreFiles.RETROFIT_DESIGN_DOC,
CoreFiles.IMPROVEMENT_OPTION_EVALUATION,
CoreFiles.MEDIUM_TERM_IMPROVEMENT_PLAN,
CoreFiles.MCS_CERTIFICATE,
}
for core_file in CoreFiles:
@ -68,7 +71,9 @@ def get_core_file_type(
return None
def get_file_type_string(filename: str) -> Optional[str]:
def get_file_type_string(
filename: str, evidence_category: Optional[str] = None
) -> Optional[str]:
core_file: Optional[CoreFiles] = get_core_file_type(filename)
if core_file is None:

View file

@ -183,3 +183,36 @@ def test_core_file_for_osm_fallback_does_not_fire_when_evidence_category_present
# Assert
assert result is None
def test_core_file_for_mcs_compliance_certificate_returns_mcs_certificate() -> None:
# Arrange
filename = "MCS_cert_job123.pdf"
# Act
result = get_core_file_type(filename, evidence_category="mcs compliance certificate")
# Assert
assert result == CoreFiles.MCS_CERTIFICATE
def test_core_file_for_mcs_compliance_certificate_is_case_insensitive() -> None:
# Arrange
filename = "some_cert.pdf"
# Act
result = get_core_file_type(filename, evidence_category="MCS Compliance Certificate")
# Assert
assert result == CoreFiles.MCS_CERTIFICATE
def test_get_file_type_string_with_mcs_evidence_category_returns_mcs_certificate() -> None:
# Arrange
filename = "some_cert.pdf"
# Act
result = get_file_type_string(filename, evidence_category="MCS Compliance Certificate")
# Assert
assert result == "mcs_certificate"