- 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