Skip to content
Snippets Groups Projects
Commit 29aee21b authored by ml bonhomme's avatar ml bonhomme :bee: Committed by Erwan Rouchet
Browse files

do not attempt to re-create unvalidated image servers with .from_url

parent 872d2145
No related branches found
No related tags found
1 merge request!1687do not attempt to re-create unvalidated image servers with .from_url
......@@ -21,7 +21,7 @@ class ImageServerManager(models.Manager):
servers = self \
.using('default') \
.annotate(image_url=models.Value(url, output_field=models.CharField())) \
.filter(validated=True, image_url__startswith=models.F('url'))
.filter(image_url__startswith=models.F('url'))
servers_count = servers.count()
if not servers_count:
......@@ -49,4 +49,9 @@ class ImageServerManager(models.Manager):
f'The URL "{url}" matched multiple existing image servers'
)
return servers.get()
image_server = servers.get()
if not image_server.validated:
raise ValueError(f'The {image_server.url} image server is not validated. '
'Please ask an instance administrator to validate the IIIF server for this image.')
return image_server
......@@ -185,3 +185,13 @@ class TestImageServer(TestCase):
self.assertEqual(new_server.display_name, server_url)
self.assertTrue(new_server.validated)
new_server.delete()
def test_from_url_unvalidated_server(self):
"""
Test that when a server already exists but is unvalidated
from_url does not attempt to create it again.
"""
self.assertEqual(self.root_srv_2.validated, False)
with self.assertRaisesMessage(ValueError, "The http://server2.dev.teklia.com/iiif image server is not validated. Please ask an instance administrator to validate the IIIF server for this image."):
ImageServer.objects.from_url("http://server2.dev.teklia.com/iiif/path%2Fto%2Ffile.jpg")
self.assertEqual(ImageServer.objects.count(), 5)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment