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"])
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)
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)
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')
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()
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")
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()
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')
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")
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/"