diff options
author | Wolfgang Müller | 2024-11-14 21:41:14 +0100 |
---|---|---|
committer | Wolfgang Müller | 2024-11-14 21:41:14 +0100 |
commit | e3b667cfac8344e0582740774024cf03ece1445b (patch) | |
tree | 558a9738e13ea8b4976262a21cdbdde266c84457 /tests | |
parent | db65a022aef9bd7410fd4cc17564c806d8bbd2b8 (diff) | |
download | hircine-e3b667cfac8344e0582740774024cf03ece1445b.tar.gz |
backend/tests: Add test for open_archive_file
Diffstat (limited to 'tests')
-rw-r--r-- | tests/scrapers/test_scraper_utils.py | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/tests/scrapers/test_scraper_utils.py b/tests/scrapers/test_scraper_utils.py index 193cf2a..4b02aad 100644 --- a/tests/scrapers/test_scraper_utils.py +++ b/tests/scrapers/test_scraper_utils.py @@ -1,4 +1,10 @@ -from hircine.scraper.utils import parse_dict +import json +import os +from zipfile import ZipFile + +import pytest + +from hircine.scraper.utils import open_archive_file, parse_dict def test_parse_dict(): @@ -26,3 +32,36 @@ def test_parse_dict(): "list_plugh", "list_xyzzy", ] + + +@pytest.mark.parametrize( + "check_sidecar", + [ + (False), + (True), + ], + ids=[ + "zip", + "sidecar", + ], +) +def test_open_archive_file(gen_archive, tmpdir, check_sidecar): + archive = next(gen_archive) + archive.path = os.path.join(tmpdir, "archive.zip") + + zip_data = {"zip": "data"} + sidecar_data = {"sidecar": "data"} + + with open(f"{archive.path}.info.json", "x") as handle: + json.dump(sidecar_data, handle) + + with ZipFile(archive.path, "x") as ziph: + ziph.writestr("info.json", json.dumps(zip_data)) + + with open_archive_file(archive, "info.json", check_sidecar=check_sidecar) as file: + data = json.load(file) + + if check_sidecar: + assert data == sidecar_data + else: + assert data == zip_data |