diff options
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 |