diff --git a/backend/apps/ifc_validation/fixtures/pass_header_language.ifc b/backend/apps/ifc_validation/fixtures/pass_header_language.ifc new file mode 100644 index 00000000..143cc3ba --- /dev/null +++ b/backend/apps/ifc_validation/fixtures/pass_header_language.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [ReferenceView_V1.2]', 'ExchangeRequirement [Any]'),'2;1'); +FILE_NAME('pass_header_language.ifc','2025-02-13T15:58:45',('jdoe'),('Acme Inc.'),'ABC rel. 0.1.2','Autodesk - Revit 26.4.0.32 (ENU) - 26.4.0.32','IFC4 model'); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPERSON($,$,'',$,$,$,$); +ENDSEC; +END-ISO-10303-21; \ No newline at end of file diff --git a/backend/apps/ifc_validation/tests/tests_header_validation_task.py b/backend/apps/ifc_validation/tests/tests_header_validation_task.py index 82bf9b89..def6c9a2 100644 --- a/backend/apps/ifc_validation/tests/tests_header_validation_task.py +++ b/backend/apps/ifc_validation/tests/tests_header_validation_task.py @@ -231,4 +231,29 @@ def test_header_validation_task_correctly_parses_encoded_company_and_tool(self): self.assertIsNotNone(model) self.assertEquals('MyFAB Tool Ä Ä', model.produced_by.name) self.assertEquals('2026.3', model.produced_by.version) - self.assertEquals('Testä Inc.', model.produced_by.company.name) \ No newline at end of file + self.assertEquals('Testä Inc.', model.produced_by.company.name) + def test_header_validation_task_splits_language_package(self): + + # arrange + HeaderValidationTaskTestCase.set_user_context() + request = ValidationRequest.objects.create( + file_name='pass_header_language.ifc', + file='pass_header_language.ifc', + size=1 + ) + request.mark_as_initiated() + + # act + header_validation_subtask( + prev_result={'is_valid': True, 'reason': 'test'}, + id=request.id, + file_name=request.file_name + ) + + # assert + model = Model.objects.get(id=request.id) + self.assertIsNotNone(model) + self.assertEquals('Revit 26.4.0.32 (ENU)', model.produced_by.name) + self.assertEquals('26.4.0.32', model.produced_by.version) + self.assertEquals('Revit 26.4.0.32', model.produced_by.canonical_name) + self.assertEquals('en', model.produced_by.language_code)