From dbe403748cea3ed8d1d625edd424888732c65b79 Mon Sep 17 00:00:00 2001 From: Glen Robson Date: Tue, 8 Oct 2024 00:40:25 +0100 Subject: [PATCH] Adding easy way to find info.jsons --- iiify/app.py | 11 +++++++++++ tests/test_images.py | 24 ++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 tests/test_images.py diff --git a/iiify/app.py b/iiify/app.py index 7064032..116b4ad 100755 --- a/iiify/app.py +++ b/iiify/app.py @@ -233,6 +233,17 @@ def info(identifier): cantaloupe_url = f"{image_server}/2/{cantaloupe_id}/info.json" return redirect(cantaloupe_url, code=302) +@app.route('/iiif/3//info.json') +def info3(identifier): + cantaloupe_id = cantaloupe_resolver(identifier) + cantaloupe_url = f"{image_server}/3/{cantaloupe_id}/info.json" + return redirect(cantaloupe_url, code=302) + +@app.route('/iiif/2//info.json') +def info2(identifier): + cantaloupe_id = cantaloupe_resolver(identifier) + cantaloupe_url = f"{image_server}/2/{cantaloupe_id}/info.json" + return redirect(cantaloupe_url, code=302) @app.route('/iiif/////.') def image_processor(identifier, region, size, rotation, quality, fmt): diff --git a/tests/test_images.py b/tests/test_images.py new file mode 100644 index 0000000..dfd65ce --- /dev/null +++ b/tests/test_images.py @@ -0,0 +1,24 @@ +import os +os.environ["FLASK_CACHE_DISABLE"] = "true" + +import unittest +from flask.testing import FlaskClient +from iiify.app import app + +class TestImages(unittest.TestCase): + + def setUp(self) -> None: + self.test_app = FlaskClient(app) + + def test_v3_resolving(self): + resp = self.test_app.get("/iiif/3/jewishinterpreta00morg$267/info.json") + self.assertEqual(resp.status_code, 302) + self.assertEqual("https://iiif.archive.org/image/iiif/3/jewishinterpreta00morg%2fjewishinterpreta00morg_jp2.zip%2fjewishinterpreta00morg_jp2%2fjewishinterpreta00morg_0267.jp2/info.json", resp.location, "Expected to be redirected to full JSON URl.") + + def test_v2_resolving(self): + resp = self.test_app.get("/iiif/2/jewishinterpreta00morg$267/info.json") + self.assertEqual(resp.status_code, 302) + self.assertEqual("https://iiif.archive.org/image/iiif/2/jewishinterpreta00morg%2fjewishinterpreta00morg_jp2.zip%2fjewishinterpreta00morg_jp2%2fjewishinterpreta00morg_0267.jp2/info.json", resp.location, "Expected to be redirected to full JSON URl.") + + +