From e8d1a37cff6aca70cbfea0a74bd242353b793b15 Mon Sep 17 00:00:00 2001 From: TrisNol Date: Sat, 4 Nov 2023 14:19:41 +0100 Subject: [PATCH] test: Extend unit tests --- .../unternehmensregister/load_test.py | 38 +++++++++++++++++++ .../transform/common_test.py | 12 ++---- .../transform/role_mapper_test.py | 13 +++++++ 3 files changed, 55 insertions(+), 8 deletions(-) create mode 100644 tests/utils/data_extraction/unternehmensregister/transform/role_mapper_test.py diff --git a/tests/utils/data_extraction/unternehmensregister/load_test.py b/tests/utils/data_extraction/unternehmensregister/load_test.py index 6f6b58b..dd71859 100644 --- a/tests/utils/data_extraction/unternehmensregister/load_test.py +++ b/tests/utils/data_extraction/unternehmensregister/load_test.py @@ -1,4 +1,8 @@ """Test load utils from Unternehmensregister.""" +import json +import tempfile +from unittest.mock import Mock, patch + from aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister import ( load, ) @@ -6,3 +10,37 @@ from aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister im def test_smoke() -> None: assert load + + +@patch( + "aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister.load.CompanyMongoService" +) +def test_load_directory_to_mongo(mock_company_service: Mock) -> None: + mock_company_service.migration_of_base_data.return_value = None + with tempfile.TemporaryDirectory() as tmp_dir: + with open(f"{tmp_dir}/test.json", "w") as f: + mock_company = { + "id": { + "district_court": { + "name": "Amtsgericht Hamburg", + "city": "Hamburg", + }, + "hr_number": "HRB 47899", + }, + "location": { + "city": "Hamburg", + "street": "Heußweg", + "house_number": "35", + "zip_code": "20255", + }, + "name": "Aurelius Immo GmbH", + "last_update": "2021-07-05", + "relationships": [], + "business_purpose": "Erwerb und Verwaltung von Immobilien; Geschäftsführung von Immobilienfonds und anderen Gesellschaften; Dienstleistungen in diesem Zusammenhang.", + "capital": {"value": 50000, "currency": "DM", "type": "Stammkapital"}, + "company_type": "Gesellschaft mit beschränkter Haftung", + "founding_date": "1977-03-03", + } + json.dump(mock_company, f) + result = load.load_directory_to_mongo(tmp_dir, mock_company_service) + assert result == 1 diff --git a/tests/utils/data_extraction/unternehmensregister/transform/common_test.py b/tests/utils/data_extraction/unternehmensregister/transform/common_test.py index 8a4c5b5..3c62864 100644 --- a/tests/utils/data_extraction/unternehmensregister/transform/common_test.py +++ b/tests/utils/data_extraction/unternehmensregister/transform/common_test.py @@ -21,14 +21,10 @@ def test_traversal() -> None: assert common.traversal(data, ["a", "b", "c"]) == "d" -# def test_traversal_raises_key_error(): -# data = {"a": {"b": {"c": "d"}}} -# try: -# common.traversal(data, ["a", "b", "d"]) -# except KeyError: -# assert True -# else: -# assert False +def test_traversal_raises_key_error() -> None: + data = {"a": {"b": {"c": "d"}}} + with pytest.raises(KeyError): + common.traversal(data, ["a", "b", "d"]) @pytest.mark.parametrize( diff --git a/tests/utils/data_extraction/unternehmensregister/transform/role_mapper_test.py b/tests/utils/data_extraction/unternehmensregister/transform/role_mapper_test.py new file mode 100644 index 0000000..f94f205 --- /dev/null +++ b/tests/utils/data_extraction/unternehmensregister/transform/role_mapper_test.py @@ -0,0 +1,13 @@ +"""Test role_mapper.py.""" +from aki_prj23_transparenzregister.models.company import RelationshipRoleEnum +from aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister.transform.v3.role_mapper import ( + RoleMapper, +) + + +def test_init() -> None: + assert isinstance(RoleMapper.mapper(), RoleMapper) + + +def test_map_role() -> None: + assert RoleMapper.mapper().get("285") == RelationshipRoleEnum.PROKURIST