- Added full test to check everything works as expected after small changes - A bit of project restructuring, with switch to absolute importsdev
parent
fa7f1516c8
commit
231f5ed4ce
@ -1,5 +0,0 @@ |
|||||||
import os |
|
||||||
import sys |
|
||||||
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) |
|
||||||
|
|
||||||
import src |
|
||||||
Binary file not shown.
@ -0,0 +1,78 @@ |
|||||||
|
from pandas import DataFrame, merge, to_datetime, NaT, concat, read_excel |
||||||
|
from pathlib import Path |
||||||
|
from re import Pattern |
||||||
|
import pytest as pt |
||||||
|
|
||||||
|
from src.config import ReportConfig, ReportSource |
||||||
|
from src.reports import GreatPlainsReport, OnBaseReport, ReconciledReports |
||||||
|
from src.hold_reconciler import pull_report_sheet |
||||||
|
|
||||||
|
class TestReport: |
||||||
|
|
||||||
|
@pt.fixture(autouse=True) |
||||||
|
def setup(self): |
||||||
|
self.report_config = ReportConfig.from_file( |
||||||
|
Path(r"./tests/test_inputs/TEST_reports_config.toml") |
||||||
|
) |
||||||
|
|
||||||
|
|
||||||
|
def test_full(self): |
||||||
|
""" |
||||||
|
Full process test. |
||||||
|
|
||||||
|
This tests inputs will need to be adjust anytime a change is made to the |
||||||
|
input/output report layouts, filtering, trimming, normalization. |
||||||
|
|
||||||
|
Basically, this is just to make sure everything still works after making |
||||||
|
TINY changes, that are not meant to effect the structure/logic of the program |
||||||
|
""" |
||||||
|
|
||||||
|
ob_df = pull_report_sheet( |
||||||
|
Path(r"./tests/test_inputs\Static\April 2023 OB.xlsx"), |
||||||
|
ReportSource.OB, |
||||||
|
self.report_config |
||||||
|
) |
||||||
|
gp_df = pull_report_sheet( |
||||||
|
Path(r"./tests/test_inputs\Static\April GP.xlsx"), |
||||||
|
ReportSource.GP, |
||||||
|
self.report_config |
||||||
|
) |
||||||
|
|
||||||
|
assert not ob_df.empty, "OB Data empty!" |
||||||
|
assert not gp_df.empty, "GP Data empty!" |
||||||
|
|
||||||
|
obr: OnBaseReport = OnBaseReport(ob_df, self.report_config) |
||||||
|
gpr: GreatPlainsReport = GreatPlainsReport(gp_df, self.report_config) |
||||||
|
|
||||||
|
rec_output: ReconciledReports = obr.reconcile(gpr) |
||||||
|
|
||||||
|
output_path: Path = Path( |
||||||
|
self.report_config.paths.output_directory, |
||||||
|
"TEST_REPORT.xlsx" |
||||||
|
) |
||||||
|
rec_output.save_reports(output_path) |
||||||
|
|
||||||
|
SHEET_NAMES = [ |
||||||
|
"No Match", |
||||||
|
"Amount Mismatch", |
||||||
|
"Overdue", |
||||||
|
"Previously Reconciled", |
||||||
|
"Filtered from GP", |
||||||
|
] |
||||||
|
|
||||||
|
CONTROL: dict[str:DataFrame] = read_excel( |
||||||
|
Path(r"./tests/test_inputs/Static/Reconciled Holds [TEST_FIN].xlsx"), |
||||||
|
sheet_name=SHEET_NAMES |
||||||
|
) |
||||||
|
|
||||||
|
new: dict[str:DataFrame] = read_excel( |
||||||
|
output_path, |
||||||
|
sheet_name=SHEET_NAMES |
||||||
|
) |
||||||
|
|
||||||
|
for sheet in SHEET_NAMES: |
||||||
|
print(sheet) |
||||||
|
print(new[sheet]) |
||||||
|
print("Control: ") |
||||||
|
print(CONTROL[sheet]) |
||||||
|
assert new[sheet].equals(CONTROL[sheet]) |
||||||
Loading…
Reference in new issue