feat: add file comparison

This commit is contained in:
Jonathan Kössler 2024-09-24 11:57:33 +02:00
parent 09d39930e7
commit c5d53b8665

View File

@ -8,6 +8,7 @@ from deepdiff import DeepDiff
from pyinfra.storage.proto_data_loader import ProtoDataLoader
enum = 1
@pytest.fixture
def test_data_dir():
@ -52,10 +53,10 @@ def should_match():
@pytest.mark.xfail(
reason="FIXME: The test is not stable, but hast to work before we can deploy the code! Right now, we don't have parity between the proto and the json data."
reason="FIXME: The test is not stable, but has to work before we can deploy the code! Right now, we don't have parity between the proto and the json data."
)
# As DOCUMENT_POSITION is a very large file, the test takes forever. If you want to test it, add "DOCUMENT_POSITION" to the list below.
@pytest.mark.parametrize("document_data", ["DOCUMENT_STRUCTURE", "DOCUMENT_TEXT", "DOCUMENT_PAGES"], indirect=True)
# As DOCUMENT_POSITION is a very large file, the test takes forever. If you want to test it, add "DOCUMENT_POSITION" to the list below. - Added per default
@pytest.mark.parametrize("document_data", ["DOCUMENT_STRUCTURE", "DOCUMENT_TEXT", "DOCUMENT_PAGES", "DOCUMENT_POSITION"], indirect=True)
def test_proto_data_loader_end2end(document_data, proto_data_loader):
file_path, data, target = document_data
data = gzip.decompress(data)
@ -64,9 +65,16 @@ def test_proto_data_loader_end2end(document_data, proto_data_loader):
loaded_data_str = json.dumps(loaded_data, sort_keys=True)
target_str = json.dumps(target, sort_keys=True)
# If you want to look at the files in more detail uncomment code below
# global enum
# with open(f"input-{enum}.json", "w") as f:
# json.dump(target, f, sort_keys=True, indent=4)
# with open(f"output-{enum}.json", "w") as f:
# json.dump(loaded_data, f, sort_keys=True, indent=4)
# enum += 1
diff = DeepDiff(loaded_data_str, target_str, ignore_order=True)
# diff = DeepDiff(sorted(loaded_data_str), sorted(target_str), ignore_order=True)
# FIXME: remove this block when the test is stable
# if diff: