Esempio n. 1
0
 def setUp(self):
     self.user = User.create_user('user1', '*****@*****.**',
                                  'user1pass')
     jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
     jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
     payload = jwt_payload_handler(self.user)
     token = jwt_encode_handler(payload)
     self.client.credentials(HTTP_AUTHORIZATION='JWT ' + token)
     AnnotationList(
         label="annotationList1",
         identifier="book1",
         name="annotationList1",
         ATid="http://example.org/iiif/book1/list/annotationList1",
         viewingHint="paged",
         ownedBy=["user1"]).save()
     AnnotationList(
         label="annotationList2",
         identifier="book1",
         name="annotationList2",
         ATid="http://example.org/iiif/book1/list/annotationList2",
         ownedBy=["user1"]).save()
     data = {"annotationList": json.loads(open(ANNOTATIONLIST_FULL).read())}
     response = self.client.post(URL, data)
     if settings.QUEUE_POST_ENABLED:
         while self.client.get(
                 response.data["status"]
         ).status_code != status.HTTP_301_MOVED_PERMANENTLY:
             pass  # Wait till background process finishes
         response = self.client.get(response.data["status"])
Esempio n. 2
0
 def test_a_annotationList_can_be_successfully_created_along_with_multi_level_nested_structures(
         self):
     data = {"annotationList": json.loads(open(ANNOTATIONLIST_FULL).read())}
     response = self.client.post(URL, data)
     if settings.QUEUE_POST_ENABLED:
         while self.client.get(
                 response.data["status"]
         ).status_code != status.HTTP_301_MOVED_PERMANENTLY:
             pass  # Wait till background process finishes
         response = self.client.get(response.data["status"])
     self.assertEqual(response.data["responseCode"],
                      status.HTTP_201_CREATED)
     self.assertEqual(AnnotationList.objects()[0].label,
                      'Awesome annotation list')
     self.assertEqual(AnnotationList.objects()[0].ATid,
                      settings.IIIF_BASE_URL + "/book1/list/p100")
     self.assertEqual(len(Annotation.objects()), 9)
     self.assertEqual(
         Annotation.objects.get(name="a0t3").ATid,
         settings.IIIF_BASE_URL + "/book1/annotation/a0t3")
     self.assertEqual(
         Annotation.objects.get(name="a0t3").on,
         "https://wellcomelibrary.org/iiif/b28928118/canvas/c0#xywh=1,1719,1772,64"
     )
     createdAnnotationListID = settings.IIIF_BASE_URL + "/book1/list/p100"
     self.assertEqual(
         createdAnnotationListID
         in Annotation.objects.get(identifier='book1',
                                   name='a0t3').belongsTo, True)
     self.assertEqual(
         AnnotationList.objects()[0].ATid
         in Annotation.objects.get(name="a0t3").belongsTo, True)
Esempio n. 3
0
 def test_a_layer_can_be_successfully_created_with_one_level_nested_structures(
         self):
     data = {"layer": json.loads(open(LAYER_MEDIUM).read())}
     response = self.client.post(URL, data)
     if settings.QUEUE_POST_ENABLED:
         while self.client.get(
                 response.data["status"]
         ).status_code != status.HTTP_301_MOVED_PERMANENTLY:
             pass  # Wait till background process finishes
         response = self.client.get(response.data["status"])
     self.assertEqual(response.data["responseCode"],
                      status.HTTP_201_CREATED)
     self.assertEqual(Layer.objects()[0].label, 'Diplomatic Transcription')
     self.assertEqual(Layer.objects()[0].ATid,
                      settings.IIIF_BASE_URL + "/book1/layer/transcription")
     self.assertEqual(len(AnnotationList.objects()), 4)
     self.assertEqual(
         AnnotationList.objects.get(name="l2").ATid,
         settings.IIIF_BASE_URL + "/book1/list/l2")
     self.assertEqual(
         Layer.objects()[0].ATid
         in AnnotationList.objects.get(identifier='book1',
                                       name='l1').belongsTo, True)
     self.assertEqual(
         Layer.objects()[0].ATid
         in AnnotationList.objects.get(identifier='book1',
                                       name='l2').belongsTo, True)
     self.assertEqual(
         Layer.objects()[0].ATid
         in AnnotationList.objects.get(identifier='book1',
                                       name='l3').belongsTo, True)
     self.assertEqual(
         Layer.objects()[0].ATid
         in AnnotationList.objects.get(identifier='book1',
                                       name='l4').belongsTo, True)
Esempio n. 4
0
 def test_a_annotationList_can_be_updated_sucessfully(self):
     data = {"annotationList": json.loads(open(ANNOTATIONLIST_FULL).read())}
     data["annotationList"]["label"] = "new_annotationList1"
     data["annotationList"]["viewingHint"] = "non-paged"
     response = self.client.put(URL + "/p100", data)
     if settings.QUEUE_PUT_ENABLED:
         while self.client.get(
                 response.data["status"]
         ).status_code != status.HTTP_301_MOVED_PERMANENTLY:
             pass  # Wait till background process finishes
         response = self.client.get(response.data["status"])
     print response.data
     self.assertEqual(response.data["responseCode"], status.HTTP_200_OK)
     self.assertEqual(AnnotationList.objects()[2].label,
                      'new_annotationList1')
     self.assertEqual(AnnotationList.objects()[2].viewingHint, 'non-paged')
Esempio n. 5
0
 def setUp(self):
     AnnotationList(
         label="annotationList1",
         identifier="book1",
         name="annotationList1",
         ATid="http://example.org/iiif/book1/list/annotationList1").save()
     AnnotationList(
         label="annotationList2",
         identifier="book1",
         name="annotationList2",
         ATid="http://example.org/iiif/book1/list/annotationList2").save()
     AnnotationList(
         label="annotationList3",
         identifier="book1",
         name="annotationList3",
         ATid="http://example.org/iiif/book1/list/annotationList3").save()
Esempio n. 6
0
 def test_a_annotationList_can_be_successfully_created_with_no_nested_structures(
         self):
     data = {
         "annotationList": json.loads(open(ANNOTATIONLIST_SHORT).read())
     }
     response = self.client.post(URL, data)
     if settings.QUEUE_POST_ENABLED:
         while self.client.get(
                 response.data["status"]
         ).status_code != status.HTTP_301_MOVED_PERMANENTLY:
             pass  # Wait till background process finishes
         response = self.client.get(response.data["status"])
     self.assertEqual(response.data["responseCode"],
                      status.HTTP_201_CREATED)
     self.assertEqual(AnnotationList.objects()[0].label,
                      'Awesome annotation list')
     self.assertEqual(AnnotationList.objects()[0].ATid,
                      settings.IIIF_BASE_URL + "/book1/list/p100")
Esempio n. 7
0
 def setUp(self):
     self.user = User.create_user('user1', '*****@*****.**',
                                  'user1pass')
     jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
     jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
     payload = jwt_payload_handler(self.user)
     token = jwt_encode_handler(payload)
     self.client.credentials(HTTP_AUTHORIZATION='JWT ' + token)
     AnnotationList(
         label="annotationList1",
         identifier="book1",
         name="annotationList1",
         ATid="http://example.org/iiif/book1/list/annotationList1",
         ownedBy=["user1"]).save()
     AnnotationList(
         label="annotationList2",
         identifier="book1",
         name="annotationList2",
         ATid="http://example.org/iiif/book1/list/annotationList2",
         ownedBy=["user1"]).save()
Esempio n. 8
0
 def test_a_annotationList_with_no_id_given_can_be_successfully_created(
         self):
     data = {
         "annotationList": json.loads(open(ANNOTATIONLIST_SHORT).read())
     }
     del data["annotationList"]["@id"]
     response = self.client.post(
         "/" + settings.TOP_LEVEL_COLLECTION_NAME + "/list", data)
     if settings.QUEUE_POST_ENABLED:
         while self.client.get(
                 response.data["status"]
         ).status_code != status.HTTP_301_MOVED_PERMANENTLY:
             pass  # Wait till background process finishes
         response = self.client.get(response.data["status"])
     self.assertEqual(response.data["responseCode"],
                      status.HTTP_201_CREATED)
     self.assertEqual(AnnotationList.objects()[0].label,
                      'Awesome annotation list')
Esempio n. 9
0
 def test_a_annotationList_with_new_id_can_be_updated_successfully(self):
     data = {
         "annotationList": {
             "@id":
             "http://example.org/iiif/new_book1/list/new_annotationList1",
             "viewingHint": "non-paged"
         }
     }
     response = self.client.put(URL + "/annotationList1", data)
     if settings.QUEUE_PUT_ENABLED:
         while self.client.get(
                 response.data["status"]
         ).status_code != status.HTTP_301_MOVED_PERMANENTLY:
             pass  # Wait till background process finishes
         response = self.client.get(response.data["status"])
     self.assertEqual(response.data["responseCode"], status.HTTP_200_OK)
     self.assertEqual(
         AnnotationList.objects()[0].ATid,
         settings.IIIF_BASE_URL + "/new_book1/list/new_annotationList1")
Esempio n. 10
0
 def setUp(self):
     AnnotationList(label="cool list", identifier="book1", name="list1", ATid="http://example.org/iiif/book1/list1").save()
     AnnotationList(label="not so cool list", identifier="book1", name="list2", ATid="http://example.org/iiif/book1/list2").save()
     AnnotationList(label="cool list", identifier="book2", name="list3", ATid="http://example.org/iiif/book2/list3").save()
     self.url = "/search/list/"