From f4a4cbc4f273ecb2abeb15dbc079882ddebbd140 Mon Sep 17 00:00:00 2001 From: TrisNol Date: Wed, 6 Sep 2023 17:48:00 +0200 Subject: [PATCH] test(data-ingestion): Test Bundesanzeiger wrapper --- .../data_extraction/bundesanzeiger_test.py | 72 ++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/tests/utils/data_extraction/bundesanzeiger_test.py b/tests/utils/data_extraction/bundesanzeiger_test.py index 6c870ff..49dbb3f 100644 --- a/tests/utils/data_extraction/bundesanzeiger_test.py +++ b/tests/utils/data_extraction/bundesanzeiger_test.py @@ -1,11 +1,29 @@ +from unittest.mock import Mock + +import pandas as pd +import pytest + +from aki_prj23_transparenzregister.models.company import FinancialKPIEnum from aki_prj23_transparenzregister.utils.data_extraction.bundesanzeiger import ( Bundesanzeiger, ) +@pytest.fixture() +def mock_bundesanzeiger(mocker: Mock) -> Mock: + mock = Mock() + mocker.patch( + "deutschland.bundesanzeiger", + return_value=mock, + ) + return mock + + def test_extract_auditor_company_no_hits() -> None: input_data = """ - Nothing to see here \O_O/ + + Nothing to see here + """ ba = Bundesanzeiger() result = ba.extract_auditor_company(input_data) @@ -24,3 +42,55 @@ def test_extract_auditor_company() -> None: ba = Bundesanzeiger() result = ba.extract_auditor_company(input_data) assert result == company_name + + +def test_extract_kpis() -> None: + input_data = """ + Die Prj23_Transparenzregister GmbH erwirtschaftete einen Jahresüberschuss 10.000,43 €. + Des Weiteren sanken die Gesamtverbindlichkeiten 42,00 € + """ + ba = Bundesanzeiger() + result = ba.__extract_kpis__(input_data) + + net_income = 10000.43 + liabilities = 42.00 + + assert result[FinancialKPIEnum.NET_INCOME.value] == net_income + assert result[FinancialKPIEnum.LIABILITIES.value] == liabilities + + +def test_extracct_financial_results() -> None: + input_data = """ +
+ Die Prj23_Transparenzregister GmbH erwirtschaftete einen Jahresüberschuss 10.000,43 €. +
+

Dies ist ein Platzhalter, der ignoriert werden soll

+ Des Weiteren sanken die Gesamtverbindlichkeiten 42,00 € + """ + ba = Bundesanzeiger() + result = ba.extract_financial_results(input_data) + + net_income = 10000.43 + liabilities = 42.00 + + assert result[FinancialKPIEnum.NET_INCOME.value] == net_income + assert result[FinancialKPIEnum.LIABILITIES.value] == liabilities + + +def test_filter_reports() -> None: + test_data = [ + {"name": "Bedienungsanleitung", "report": ""}, + {"name": "Jahresabschluss 1998", "report": ""}, + ] + test_df = pd.DataFrame(test_data) + ba = Bundesanzeiger() + result = ba.filter_reports(test_df) + assert len(result) == 1 + assert result.iloc[0].jahr == "1998" + + +def test_get_information(mock_bundesanzeiger: Mock) -> None: + mock_bundesanzeiger.get_reports.return_value = [{}, {}] + ba = Bundesanzeiger() + result = ba.get_information("PRJ 23 Transparenzregister GmbH", "Iserlohn") + assert result is not None