Skip to content
Snippets Groups Projects
Commit fc315389 authored by Bastien Abadie's avatar Bastien Abadie
Browse files

Merge branch 'test-teklia-com' into 'master'

Use dummy teklia.com subdomains in unit tests

Closes #936

See merge request !1606
parents 129b2e87 344905fc
No related branches found
No related tags found
1 merge request!1606Use dummy teklia.com subdomains in unit tests
......@@ -10,8 +10,8 @@ class TestCustomAdminViews(FixtureTestCase):
@classmethod
def setUpTestData(cls):
super().setUpTestData()
cls.root_srv = ImageServer.objects.create(display_name='Root', url='http://server.dev/iiif')
cls.sub_srv = ImageServer.objects.create(display_name='Subfolder', url='http://server.dev/iiif/sub')
cls.root_srv = ImageServer.objects.create(display_name='Root', url='http://server.dev.teklia.com/iiif')
cls.sub_srv = ImageServer.objects.create(display_name='Subfolder', url='http://server.dev.teklia.com/iiif/sub')
cls.root_srv.images.create(path='some/thing', width=100, height=100)
cls.sub_srv.images.create(path='other/thing', width=100, height=100)
......@@ -102,7 +102,7 @@ class TestCustomAdminViews(FixtureTestCase):
self.root_srv.refresh_from_db()
self.assertEqual(self.root_srv.images.count(), 0)
new_srv = ImageServer.objects.get(url='http://server.dev/iiif/some')
new_srv = ImageServer.objects.get(url='http://server.dev.teklia.com/iiif/some')
self.assertEqual(new_srv.display_name, 'Root_some')
self.assertEqual(new_srv.images.count(), 1)
......
......@@ -29,7 +29,7 @@ class TestImageApi(FixtureAPITestCase):
def setUpTestData(cls):
super().setUpTestData()
cls.server = ImageServer.objects.create(
url='https://test-server.eu/images',
url='https://test-iiif-server.teklia.com/images',
validated=True
)
......@@ -242,7 +242,7 @@ class TestImageApi(FixtureAPITestCase):
"""
Test setting an image's status to Checked runs the image checks
"""
url = 'https://test-server.eu/images/notfound/info.json'
url = 'https://test-iiif-server.teklia.com/images/notfound/info.json'
responses.add(responses.GET, url, status=404)
img = self.server.images.create(
status=S3FileStatus.Unchecked,
......@@ -290,7 +290,7 @@ class TestImageApi(FixtureAPITestCase):
self.client.force_login(self.superuser)
response = self.client.post(
reverse('api:iiif-url-create'),
{'url': 'https://test-server.eu/images/image_path'}
{'url': 'https://test-iiif-server.teklia.com/images/image_path'}
)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
data = response.json()
......@@ -301,20 +301,20 @@ class TestImageApi(FixtureAPITestCase):
'height': 1337,
'width': 4200,
'path': 'image_path',
'url': 'https://test-server.eu/images/image_path',
'url': 'https://test-iiif-server.teklia.com/images/image_path',
's3_url': None,
'server': {
'display_name': self.server.display_name,
'max_height': self.server.max_height,
'max_width': self.server.max_width,
'url': 'https://test-server.eu/images'
'url': 'https://test-iiif-server.teklia.com/images'
}
})
def test_create_iiif_image_requires_login(self):
response = self.client.post(
reverse('api:iiif-url-create'),
{'url': 'https://test-server.eu/images/image_path'}
{'url': 'https://test-iiif-server.teklia.com/images/image_path'}
)
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertDictEqual(response.json(), {
......@@ -326,7 +326,7 @@ class TestImageApi(FixtureAPITestCase):
self.client.force_login(self.user)
response = self.client.post(
reverse('api:iiif-url-create'),
{'url': 'https://test-server.eu/images/image_path'}
{'url': 'https://test-iiif-server.teklia.com/images/image_path'}
)
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertDictEqual(response.json(), {
......@@ -337,7 +337,7 @@ class TestImageApi(FixtureAPITestCase):
self.user.user_scopes.create(scope=Scope.CreateIIIFImage)
response = self.client.post(
reverse('api:iiif-url-create'),
{'url': 'https://test-server.eu/images/image_path'}
{'url': 'https://test-iiif-server.teklia.com/images/image_path'}
)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
self.assertTrue(Image.objects.filter(path='image_path').exists())
......@@ -347,25 +347,25 @@ class TestImageApi(FixtureAPITestCase):
self.assertFalse(self.superuser.user_scopes.filter(scope=Scope.CreateIIIFImage).exists())
response = self.client.post(
reverse('api:iiif-url-create'),
{'url': 'https://test-server.eu/images/image_path'}
{'url': 'https://test-iiif-server.teklia.com/images/image_path'}
)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
def test_create_iiif_image_new_server(self):
self.client.force_login(self.superuser)
self.assertFalse(ImageServer.objects.filter(url='https://randomserver.com/iiif').exists())
self.assertFalse(ImageServer.objects.filter(url='https://randomserver.teklia.com/iiif').exists())
response = self.client.post(
reverse('api:iiif-url-create'),
{'url': 'https://randomserver.com/iiif/path/to/image.jpg'}
{'url': 'https://randomserver.teklia.com/iiif/path/to/image.jpg'}
)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
self.assertTrue(ImageServer.objects.filter(url='https://randomserver.com/iiif').exists())
self.assertTrue(ImageServer.objects.filter(url='https://randomserver.teklia.com/iiif').exists())
self.assertTrue(Image.objects.filter(path='path/to/image.jpg').exists())
def test_create_iiif_image_wrong_urls(self):
self.client.force_login(self.superuser)
# Create a server with same prefix as existing one
ImageServer.objects.create(url='https://test-server', validated=True)
ImageServer.objects.create(url='https://test-iiif-server', validated=True)
wrong_urls = {
'This field may not be blank.': [
''
......@@ -375,12 +375,12 @@ class TestImageApi(FixtureAPITestCase):
'images.com/iiif/007',
'sftp://images.com/iiif/007'
],
'The URL "https://iiif.net/v2/007" does not match any existing image server. '
'The URL "https://not-a-server.teklia.com/v2/007" does not match any existing image server. '
'Please ask an instance administrator to register the IIIF server for this image.': [
'https://iiif.net/v2/007',
'https://not-a-server.teklia.com/v2/007',
],
'The URL "https://test-server.eu/images/v2/images/image.jpg" matched multiple existing image servers': [
'https://test-server.eu/images/v2/images/image.jpg'
'The URL "https://test-iiif-server.teklia.com/images/v2/images/image.jpg" matched multiple existing image servers': [
'https://test-iiif-server.teklia.com/images/v2/images/image.jpg'
]
}
for message, urls in wrong_urls.items():
......@@ -393,7 +393,7 @@ class TestImageApi(FixtureAPITestCase):
self.client.force_login(self.superuser)
api_call = (
reverse('api:iiif-url-create'),
{'url': 'https://test-server.eu/images/image_path'}
{'url': 'https://test-iiif-server.teklia.com/images/image_path'}
)
response = self.client.post(*api_call)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
......@@ -418,7 +418,7 @@ class TestImageApi(FixtureAPITestCase):
)
response = self.client.post(
reverse('api:iiif-url-create'),
{'url': 'https://test-server.eu/images/image_path2'},
{'url': 'https://test-iiif-server.teklia.com/images/image_path2'},
)
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertDictEqual(response.json(), {
......@@ -430,7 +430,7 @@ class TestImageApi(FixtureAPITestCase):
response = self.client.post(
reverse('api:iiif-info-create'),
{
'@id': 'https://test-server.eu/images/image_path',
'@id': 'https://test-iiif-server.teklia.com/images/image_path',
'height': 1337,
'width': 4200,
'profile': ['http://iiif.io/api/image/2/level2.json'],
......@@ -443,7 +443,7 @@ class TestImageApi(FixtureAPITestCase):
response = self.client.post(
reverse('api:iiif-info-create'),
{
'@id': 'https://test-server.eu/images/image_path',
'@id': 'https://test-iiif-server.teklia.com/images/image_path',
'height': 1337,
'width': 4200,
'profile': ['http://iiif.io/api/image/2/level2.json'],
......@@ -458,13 +458,13 @@ class TestImageApi(FixtureAPITestCase):
'height': 1337,
'width': 4200,
'path': 'image_path',
'url': 'https://test-server.eu/images/image_path',
'url': 'https://test-iiif-server.teklia.com/images/image_path',
's3_url': None,
'server': {
'display_name': self.server.display_name,
'max_height': self.server.max_height,
'max_width': self.server.max_width,
'url': 'https://test-server.eu/images'
'url': 'https://test-iiif-server.teklia.com/images'
}
})
......@@ -480,7 +480,7 @@ class TestImageApi(FixtureAPITestCase):
response = self.client.post(
reverse('api:iiif-info-create'),
{
'@id': 'https://test-server.eu/images/image_path',
'@id': 'https://test-iiif-server.teklia.com/images/image_path',
'height': 1337,
'width': 4200,
'profile': ['http://iiif.io/api/image/2/level2.json'],
......@@ -495,13 +495,13 @@ class TestImageApi(FixtureAPITestCase):
'height': 1337,
'width': 4200,
'path': 'image_path',
'url': 'https://test-server.eu/images/image_path',
'url': 'https://test-iiif-server.teklia.com/images/image_path',
's3_url': None,
'server': {
'display_name': self.server.display_name,
'max_height': self.server.max_height,
'max_width': self.server.max_width,
'url': 'https://test-server.eu/images'
'url': 'https://test-iiif-server.teklia.com/images'
}
})
......@@ -509,7 +509,7 @@ class TestImageApi(FixtureAPITestCase):
self.assertFalse(self.user.user_scopes.filter(scope=Scope.CreateIIIFImage).exists())
self.client.force_login(self.user)
payload = {
'@id': 'https://test-server.eu/images/image_path',
'@id': 'https://test-iiif-server.teklia.com/images/image_path',
'height': 1337,
'width': 4200,
'profile': ['http://iiif.io/api/image/2/level2.json'],
......@@ -540,7 +540,7 @@ class TestImageApi(FixtureAPITestCase):
response = self.client.post(
reverse('api:iiif-info-create'),
{
'@id': 'https://toast-server.eu/images/image_path',
'@id': 'https://toast-server.teklia.com/images/image_path',
'height': 1337,
'width': 4200,
'profile': ['http://iiif.io/api/image/2/level2.json'],
......@@ -548,7 +548,7 @@ class TestImageApi(FixtureAPITestCase):
)
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertDictEqual(response.json(), {'@id': [
'The URL "https://toast-server.eu/images/image_path" does not match any existing image server. '
'The URL "https://toast-server.teklia.com/images/image_path" does not match any existing image server. '
'Please ask an instance administrator to register the IIIF server for this image.'
]})
......@@ -557,7 +557,7 @@ class TestImageApi(FixtureAPITestCase):
response = self.client.post(
reverse('api:iiif-info-create'),
{
'@id': 'https://test-server.eu/images/image_path',
'@id': 'https://test-iiif-server.teklia.com/images/image_path',
'height': 0,
'width': 0,
'profile': ['http://iiif.io/api/image/2/level2.json'],
......
......@@ -9,11 +9,11 @@ class TestImageServer(TestCase):
@classmethod
def setUpTestData(cls):
cls.root_srv_1 = ImageServer.objects.create(display_name='Root 1', url='http://server.dev/iiif')
cls.root_srv_2 = ImageServer.objects.create(display_name='Root 2', url='http://server2.dev/iiif/')
cls.sub_srv_1 = ImageServer.objects.create(display_name='Subfolder 1', url='http://server.dev/iiif/sub')
cls.sub_srv_2 = ImageServer.objects.create(display_name='Subfolder 2', url='http://server2.dev/iiif/sub')
cls.empty_srv = ImageServer.objects.create(display_name='Empty', url='http://server.dev/iiif/dev/null')
cls.root_srv_1 = ImageServer.objects.create(display_name='Root 1', url='http://server.dev.teklia.com/iiif')
cls.root_srv_2 = ImageServer.objects.create(display_name='Root 2', url='http://server2.dev.teklia.com/iiif/')
cls.sub_srv_1 = ImageServer.objects.create(display_name='Subfolder 1', url='http://server.dev.teklia.com/iiif/sub')
cls.sub_srv_2 = ImageServer.objects.create(display_name='Subfolder 2', url='http://server2.dev.teklia.com/iiif/sub')
cls.empty_srv = ImageServer.objects.create(display_name='Empty', url='http://server.dev.teklia.com/iiif/dev/null')
cls.root_srv_1.images.create(path='a', width=100, height=100)
cls.root_srv_1.images.create(path='b', width=100, height=100)
......@@ -115,7 +115,7 @@ class TestImageServer(TestCase):
self.assertEqual(self.root_srv_2.images.count(), 2)
self.assertEqual(new_srv.display_name, 'Root 2_sub2')
self.assertEqual(new_srv.url, 'http://server2.dev/iiif/sub2')
self.assertEqual(new_srv.url, 'http://server2.dev.teklia.com/iiif/sub2')
self.assertEqual(new_srv.images.count(), 1)
self.assertEqual(new_srv.images.get(), sub2_img)
sub2_img.refresh_from_db()
......@@ -130,7 +130,7 @@ class TestImageServer(TestCase):
Prevents creating two servers at /iiif and /iiif/
"""
with self.assertRaisesRegex(IntegrityError, 'unique'):
ImageServer.objects.create(display_name='Root 1 (bis)', url='http://server.dev/iiif/')
ImageServer.objects.create(display_name='Root 1 (bis)', url='http://server.dev.teklia.com/iiif/')
def test_manager_local(self):
"""
......@@ -154,26 +154,26 @@ class TestImageServer(TestCase):
"""
ImageServer.objects.update(validated=True)
self.assertEqual(ImageServer.objects.from_url('http://server.dev/iiif/test.jpg'), self.root_srv_1)
self.assertEqual(ImageServer.objects.from_url('http://server2.dev/iiif/test.jpg'), self.root_srv_2)
self.assertEqual(ImageServer.objects.from_url('http://server.dev.teklia.com/iiif/test.jpg'), self.root_srv_1)
self.assertEqual(ImageServer.objects.from_url('http://server2.dev.teklia.com/iiif/test.jpg'), self.root_srv_2)
self.assertEqual(ImageServer.objects.count(), 5)
# A new server will be created
new_server = ImageServer.objects.from_url('http://new.server.dev/iiif/test.jpg')
new_server = ImageServer.objects.from_url('http://new.server.dev.teklia.com/iiif/test.jpg')
self.assertEqual(ImageServer.objects.count(), 6)
self.assertEqual(new_server.url, 'http://new.server.dev/iiif')
self.assertEqual(new_server.display_name, 'http://new.server.dev/iiif')
self.assertEqual(new_server.url, 'http://new.server.dev.teklia.com/iiif')
self.assertEqual(new_server.display_name, 'http://new.server.dev.teklia.com/iiif')
self.assertTrue(new_server.validated)
# And then reused for later calls
self.assertEqual(ImageServer.objects.from_url('http://new.server.dev/iiif/path%2Fto%2Ffile.jpg'), new_server)
self.assertEqual(ImageServer.objects.from_url('http://new.server.dev.teklia.com/iiif/path%2Fto%2Ffile.jpg'), new_server)
self.assertEqual(ImageServer.objects.count(), 6)
def test_from_url_formats(self):
cases = [
('https://whatever.online/prefix/I3f/xxx/test.jpg', 'https://whatever.online/prefix/I3f'),
('http://whatever.online/prefixYz/IIIf/path/to/image.jpg', 'http://whatever.online/prefixYz/IIIf'),
('https://nubis.univ-paris1.fr/iiif-img/451455/info.json', 'https://nubis.univ-paris1.fr/iiif-img')
('https://whatever.teklia.com/prefix/I3f/xxx/test.jpg', 'https://whatever.teklia.com/prefix/I3f'),
('http://whatever.teklia.com/prefixYz/IIIf/path/to/image.jpg', 'http://whatever.teklia.com/prefixYz/IIIf'),
('https://whatever.teklia.com/iiif-img/451455/info.json', 'https://whatever.teklia.com/iiif-img')
]
self.assertEqual(ImageServer.objects.count(), 5)
for image_url, server_url in cases:
......
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