diff --git a/iiify/resolver.py b/iiify/resolver.py index 50ce0be..298f164 100644 --- a/iiify/resolver.py +++ b/iiify/resolver.py @@ -706,7 +706,12 @@ def create_manifest3(identifier, domain=None, page=None): body.items.append(r) else: # todo: deal with instances where there are no derivatives for whatever reason - pass + body = ResourceItem( + id=f"https://archive.org/download/{identifier}/{file['name'].replace(' ', '%20')}", + type='Sound', + format=to_mimetype(file['format']), + label={"none": [file['format']]}, + duration=float(file['length'])) anno.body = body ap.add_item(anno) diff --git a/tests/test_audio.py b/tests/test_audio.py new file mode 100644 index 0000000..f10e23c --- /dev/null +++ b/tests/test_audio.py @@ -0,0 +1,19 @@ +import os + +import unittest +import math +from flask.testing import FlaskClient +from iiify.app import app + +class TestAudio(unittest.TestCase): + + def setUp(self) -> None: + os.environ["FLASK_CACHE_DISABLE"] = "true" + self.test_app = FlaskClient(app) + + def test_audio_no_derivatives(self): + resp = self.test_app.get("/iiif/3/kaled_jalil/manifest.json") + self.assertEqual(resp.status_code, 200) + manifest = resp.json + + self.assertEqual(len(manifest['items']),114,f"Expected 114 canvases but got: {len(manifest['items'])}") \ No newline at end of file