def test_iiif_image_api_storage(self, _getter):
# Enable file storage engine for this test
from icekit.plugins.iiif import views
views.iiif_storage = FileSystemStorage(location=tempfile.gettempdir())
# Generate image at 10% size, manually specified
canonical_url = reverse(
'iiif_image_api',
args=[self.ik_image.pk,
'full', '20,', '0', 'default', 'jpg'])
image = self.mock_image(return_from=_getter)
response = self.app.get(canonical_url, user=self.superuser)
self.assertEqual(image.mock_calls, [
call.resize((20, 30)),
call.resize().convert('RGB'),
call.resize().convert().save(ANY, format='jpeg')
])
self.assertEqual(200, response.status_code)
self.FileResponse.assert_called_with(
ANY, content_type='image/jpeg')
# Generate image at 10% size using pct:10, confirm we get redirected
# to the expected canonical URL path and that image loaded from storage
# instead of generated
image = self.mock_image(return_from=_getter)
response = self.app.get(
reverse(
'iiif_image_api',
args=[self.ik_image.pk,
'full', 'pct:10', '0', 'default', 'jpg']),
user=self.superuser,
)
# Redirected to canonical URL?
self.assertEqual(302, response.status_code)
self.assertTrue(response['location'].endswith(canonical_url))
response = response.follow()
self.assertEqual(200, response.status_code)
self.assertEqual(image.mock_calls, []) # No calls on image
self.FileResponse.assert_called_with(
ANY, content_type='image/jpeg')
评论列表
文章目录