mirror of
https://github.com/fhswf/aki_prj23_transparenzregister.git
synced 2025-04-25 08:02:34 +02:00
SQL Creation is now done dynamicly by the definition of the enumeration type.
117 lines
3.4 KiB
Python
117 lines
3.4 KiB
Python
"""Tests if the bundesanzeiger can be accessed and read."""
|
|
from unittest.mock import Mock, patch
|
|
|
|
import pandas as pd
|
|
|
|
from aki_prj23_transparenzregister.utils.data_extraction.bundesanzeiger import (
|
|
Bundesanzeiger,
|
|
)
|
|
from aki_prj23_transparenzregister.utils.enum_types import FinancialKPIEnum
|
|
|
|
|
|
def test_extract_auditor_company_no_hits() -> None:
|
|
input_data = """
|
|
<b>
|
|
Nothing to see here
|
|
</b>
|
|
"""
|
|
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"""
|
|
<b>
|
|
{company_name}
|
|
<br>
|
|
Max Mustermann
|
|
</b>
|
|
"""
|
|
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_extract_financial_results() -> None:
|
|
input_data = """
|
|
<br>
|
|
Die Prj23_Transparenzregister GmbH erwirtschaftete einen Jahresüberschuss 10.000,43 €.
|
|
</br>
|
|
<h2>Dies ist ein Platzhalter, der ignoriert werden soll</h2>
|
|
<b>Des Weiteren sanken die Gesamtverbindlichkeiten 42,00 €</b>
|
|
"""
|
|
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
|