Spaces:
Running
Running
| import os | |
| import pandas as pd | |
| import pytest | |
| from rag_pipeline.excel_parser import parse_excel_financials | |
| def sample_csv(tmp_path): | |
| df = pd.DataFrame({ | |
| "Miesiąc": ["Styczeń", "Luty", "Marzec"], | |
| "Przychody": [10000, 15000, 20000], | |
| "EBITDA": [2000, 3000, 4000] | |
| }) | |
| file_path = tmp_path / "finanse.csv" | |
| df.to_csv(file_path, index=False) | |
| return str(file_path) | |
| def sample_excel(tmp_path): | |
| df1 = pd.DataFrame({ | |
| "Koszty": ["Marketing", "R&D", "IT"], | |
| "Wartość": [5000, 20000, 10000] | |
| }) | |
| df2 = pd.DataFrame({ | |
| "Przychody ze sprzedaży": [100000], | |
| "Zysk Netto": [25000] | |
| }) | |
| file_path = tmp_path / "finanse.xlsx" | |
| with pd.ExcelWriter(file_path) as writer: | |
| df1.to_excel(writer, sheet_name="Koszty", index=False) | |
| df2.to_excel(writer, sheet_name="Wyniki", index=False) | |
| return str(file_path) | |
| def test_parse_csv(sample_csv): | |
| result = parse_excel_financials(sample_csv) | |
| assert result["parser"] == "pandas_excel" | |
| assert "Przychody" in result["text"] | |
| assert "EBITDA" in result["text"] | |
| assert result["metadata"].get("has_ebitda") is True | |
| assert result["metadata"].get("has_revenue") is True | |
| def test_parse_excel(sample_excel): | |
| result = parse_excel_financials(sample_excel) | |
| assert result["parser"] == "pandas_excel" | |
| assert "Koszty" in result["text"] | |
| assert "Wyniki" in result["text"] | |
| assert "Przychody" in result["text"] | |
| assert result["metadata"].get("has_revenue") is True | |
| assert result["metadata"].get("has_ebitda") is None | |
| def test_parse_invalid_file(tmp_path): | |
| invalid_file = tmp_path / "broken.xlsx" | |
| invalid_file.write_text("not an excel file") | |
| result = parse_excel_financials(str(invalid_file)) | |
| assert result["parser"] == "error" | |
| assert result["text"] == "" | |