"""Tests if the bundesanzeiger can be accessed and read.""" from unittest.mock import Mock, patch import pandas as pd from aki_prj23_transparenzregister.models.company import FinancialKPIEnum from aki_prj23_transparenzregister.utils.data_extraction.bundesanzeiger import ( Bundesanzeiger, ) def test_extract_auditor_company_no_hits() -> None: input_data = """ Nothing to see here """ ba = Bundesanzeiger() result = ba.extract_auditor_company(input_data) assert result is None def test_extract_auditor_company() -> None: company_name = "Korrupte Wirtschaftsprüfer GmbH & Co. KG" input_data = f""" {company_name}
Max Mustermann
""" 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": "", "raw_report": ""}, { "name": "Jahresabschluss vom 01.01.1998 bis zum 31.12.1998", "report": "", "raw_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" @patch( "aki_prj23_transparenzregister.utils.data_extraction.bundesanzeiger.Ba.get_reports" ) def test_get_information(mock_bundesanzeiger: Mock) -> None: mock_bundesanzeiger.return_value = { "1": { "name": "Bedienungsanleitung", "report": "", "company": "", "raw_report": "", }, "2": { "name": "Jahresabschluss 01.01.1998", "report": "", "company": "PRJ 23 Transparenzregister GmbH", "raw_report": "", }, } ba = Bundesanzeiger() result = ba.get_information("PRJ 23 Transparenzregister GmbH", "Iserlohn") assert len(result) == 1 @patch( "aki_prj23_transparenzregister.utils.data_extraction.bundesanzeiger.Ba.get_reports" ) def test_get_information_no_results(mock_bundesanzeiger: Mock) -> None: mock_bundesanzeiger.return_value = {} ba = Bundesanzeiger() result = ba.get_information("PRJ 23 Transparenzregister GmbH", "Iserlohn") assert len(result) == 0