summaryrefslogtreecommitdiffstatshomepage
path: root/tests
diff options
context:
space:
mode:
authorWolfgang Müller2024-11-14 21:41:14 +0100
committerWolfgang Müller2024-11-14 21:41:14 +0100
commite3b667cfac8344e0582740774024cf03ece1445b (patch)
tree558a9738e13ea8b4976262a21cdbdde266c84457 /tests
parentdb65a022aef9bd7410fd4cc17564c806d8bbd2b8 (diff)
downloadhircine-e3b667cfac8344e0582740774024cf03ece1445b.tar.gz
backend/tests: Add test for open_archive_file
Diffstat (limited to '')
-rw-r--r--tests/scrapers/test_scraper_utils.py41
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