def test_remove_all_context(self): """should allow removing all context""" context = {"caption": "some caption", "alt": "alternative|alt=a"} result = uploader.upload(TEST_IMAGE, context=context, tags=[UNIQUE_TAG]) info = api.resource(result["public_id"], context=True) self.assertEqual({"custom": context}, info["context"]) uploader.remove_all_context(result["public_id"]) info = api.resource(result["public_id"], context=True) self.assertFalse("context" in info)
def test_rename(self): """should successfully rename a file""" result = uploader.upload("tests/logo.png") uploader.rename(result["public_id"], result["public_id"]+"2") self.assertIsNotNone(api.resource(result["public_id"]+"2")) result2 = uploader.upload("tests/favicon.ico") self.assertRaises(api.Error, uploader.rename, result2["public_id"], result["public_id"]+"2") uploader.rename(result2["public_id"], result["public_id"]+"2", overwrite=True) self.assertEqual(api.resource(result["public_id"]+"2")["format"], "ico")
def test_tags(self): """should successfully upload file """ result = uploader.upload("tests/logo.png") uploader.add_tag("tag1", result["public_id"]) uploader.add_tag("tag2", result["public_id"]) self.assertEqual(api.resource(result["public_id"])["tags"], ["tag1", "tag2"]) uploader.remove_tag("tag1", result["public_id"]) self.assertEqual(api.resource(result["public_id"])["tags"], ["tag2"]) uploader.replace_tag("tag3", result["public_id"]) self.assertEqual(api.resource(result["public_id"])["tags"], ["tag3"])
def test19_delete_derived(self): """ should allow deleting all resource """ uploader.upload("tests/logo.png", public_id="api_test5", eager=[{"width": 101,"crop": "scale"}]) resource = api.resource("api_test5") self.assertNotEqual(resource, None) self.assertEqual(len(resource["derived"]), 1) api.delete_all_resources(keep_original=True) resource = api.resource("api_test5") self.assertNotEqual(resource, None) self.assertEqual(len(resource["derived"]), 0)
def test_rename(self): """should successfully rename a file""" result = uploader.upload(TEST_IMAGE, tags=[UNIQUE_TAG]) uploader.rename(result["public_id"], result["public_id"]+"2") self.assertIsNotNone(api.resource(result["public_id"]+"2")) result2 = uploader.upload(TEST_ICON, tags=[UNIQUE_TAG]) self.assertRaises(api.Error, uploader.rename, result2["public_id"], result["public_id"]+"2") uploader.rename(result2["public_id"], result["public_id"]+"2", overwrite=True) self.assertEqual(api.resource(result["public_id"]+"2")["format"], "ico")
def test19_delete_derived(self): """ should allow deleting all resource """ uploader.upload(TEST_IMAGE, public_id=API_TEST_ID5, eager=[{"width": 101, "crop": "scale"}]) resource = api.resource(API_TEST_ID5) self.assertNotEqual(resource, None) self.assertEqual(len(resource["derived"]), 1) api.delete_all_resources(keep_original=True) resource = api.resource(API_TEST_ID5) self.assertNotEqual(resource, None) self.assertEqual(len(resource["derived"]), 0)
def test08_delete_derived(self): """ should allow deleting derived resource """ uploader.upload("tests/logo.png", public_id="api_test3", eager=[{"width": 101,"crop": "scale"}]) resource = api.resource("api_test3") self.assertNotEqual(resource, None) self.assertEqual(len(resource["derived"]), 1) derived_resource_id = resource["derived"][0]["id"] api.delete_derived_resources([derived_resource_id]) resource = api.resource("api_test3") self.assertNotEqual(resource, None) self.assertEqual(len(resource["derived"]), 0)
def test_remove_all_tags(self): """should successfully remove all tags""" result = uploader.upload(TEST_IMAGE, public_id=TEST_ID1) result2 = uploader.upload(TEST_IMAGE, public_id=TEST_ID2) uploader.add_tag("tag1", [result["public_id"], result2["public_id"]]) uploader.add_tag("tag2", result["public_id"]) self.assertEqual(api.resource(result["public_id"])["tags"], ["tag1", "tag2"]) self.assertEqual(api.resource(result2["public_id"])["tags"], ["tag1"]) uploader.remove_all_tags([result["public_id"], result2["public_id"]]) self.assertFalse("tags" in api.resource(result["public_id"])) self.assertFalse("tags" in api.resource(result2["public_id"]))
def test_tags(self): """should successfully upload file """ result = uploader.upload(TEST_IMAGE, tags=[UNIQUE_TAG]) result2 = uploader.upload(TEST_IMAGE, tags=[UNIQUE_TAG]) uploader.add_tag("tag1", [result["public_id"], result2["public_id"]]) uploader.add_tag("tag2", result["public_id"]) self.assertEqual(api.resource(result["public_id"])["tags"], ["tag1", "tag2", UNIQUE_TAG]) self.assertEqual(api.resource(result2["public_id"])["tags"], ["tag1", UNIQUE_TAG]) uploader.remove_tag("tag1", result["public_id"]) self.assertEqual(api.resource(result["public_id"])["tags"], ["tag2", UNIQUE_TAG]) uploader.replace_tag("tag3", result["public_id"]) self.assertEqual(api.resource(result["public_id"])["tags"], ["tag3"]) uploader.replace_tag(UNIQUE_TAG, result["public_id"])
def make_info(self, identifier): if INFO_CACHE.has_key(identifier): (imageW, imageH) = INFO_CACHE[identifier] else: external = api.resource(identifier) imageW = external['width'] imageH = external['height'] INFO_CACHE[identifier] = (imageW, imageH) qualities = ['native','color','grey','bitonal'] formats = self.extensions.keys() info = {"@id": "%s%s/%s" % (BASEURL, PREFIX, identifier), "@context" : "http://library.stanford.edu/iiif/image-api/1.1/context.json", "width":imageW, "height":imageH, "tile_width": TILE_SIZE, "tile_height": TILE_SIZE, "scale_factors": [1,2,3,4,5,8,10,16], "formats": formats, "qualities": qualities, "profile": self.compliance} return info
def test07_resource_metadata(self): """ should allow get resource metadata """ resource = api.resource("api_test") self.assertNotEqual(resource, None) self.assertEqual(resource["public_id"], "api_test") self.assertEqual(resource["bytes"], 3381) self.assertEqual(len(resource["derived"]), 1)
def test09a_delete_resources_by_prefix(self): """ should allow deleting resources by prefix """ uploader.upload("tests/logo.png", public_id="api_test_by_prefix") resource = api.resource("api_test_by_prefix") self.assertNotEqual(resource, None) api.delete_resources_by_prefix("api_test_by") self.assertRaises(api.NotFound, api.resource, ("api_test_by_prefix"))
def test07_resource_metadata(self): """ should allow get resource metadata """ resource = api.resource(API_TEST_ID) self.assertNotEqual(resource, None) self.assertEqual(resource["public_id"], API_TEST_ID) self.assertEqual(resource["bytes"], 3381) self.assertEqual(len(resource["derived"]), 1, "{} should have one derived resource.".format(API_TEST_ID))
def test09b_delete_resources_by_prefix(self): """ should allow deleting resources by tags """ uploader.upload("tests/logo.png", public_id="api_test4", tags=["api_test_tag_for_delete"]) resource = api.resource("api_test4") self.assertNotEqual(resource, None) api.delete_resources_by_tag("api_test_tag_for_delete") self.assertRaises(api.NotFound, api.resource, ("api_test4"))
def test09_delete_resources(self): """ should allow deleting resources """ uploader.upload("tests/logo.png", public_id="api_test3") resource = api.resource("api_test3") self.assertNotEqual(resource, None) api.delete_resources(["apit_test", "api_test2", "api_test3"]) self.assertRaises(api.NotFound, api.resource, ("api_test3"))
def test07a_resource_quality_analysis(self): """ should allow getting resource quality analysis """ resource = api.resource(API_TEST_ID, quality_analysis=True) self.assertNotEqual(resource, None) self.assertEqual(resource["public_id"], API_TEST_ID) self.assertIn("quality_analysis", resource) self.assertIn("focus", resource["quality_analysis"]) self.assertIsInstance(resource["quality_analysis"]["focus"], float)
def test_restore(self): """ should support restoring resources """ uploader.upload(TEST_IMAGE, public_id=RESTORE_TEST_ID, backup=True, tags=[UNIQUE_API_TAG]) resource = api.resource(RESTORE_TEST_ID) self.assertNotEqual(resource, None) self.assertEqual(resource["bytes"], 3381) api.delete_resources([RESTORE_TEST_ID]) resource = api.resource(RESTORE_TEST_ID) self.assertNotEqual(resource, None) self.assertEqual(resource["bytes"], 0) self.assertIs(resource["placeholder"], True) response = api.restore([RESTORE_TEST_ID]) info = response[RESTORE_TEST_ID] self.assertNotEqual(info, None) self.assertEqual(info["bytes"], 3381) resource = api.resource(RESTORE_TEST_ID) self.assertNotEqual(resource, None) self.assertEqual(resource["bytes"], 3381)
def test_restore(self): """ should support restoring resources """ uploader.upload("tests/logo.png", public_id="api_test_restore", backup=True) resource = api.resource("api_test_restore") self.assertNotEqual(resource, None) self.assertEqual(resource["bytes"], 3381) api.delete_resources(["api_test_restore"]) resource = api.resource("api_test_restore") self.assertNotEqual(resource, None) self.assertEqual(resource["bytes"], 0) self.assertIs(resource["placeholder"], True) response = api.restore(["api_test_restore"]) info = response["api_test_restore"] self.assertNotEqual(info, None) self.assertEqual(info["bytes"], 3381) resource = api.resource("api_test_restore") self.assertNotEqual(resource, None) self.assertEqual(resource["bytes"], 3381)
def test_face_coordinates(self): """should allow sending face coordinates""" coordinates = [[120, 30, 109, 150], [121, 31, 110, 151]] result = uploader.upload("tests/logo.png", face_coordinates = coordinates, faces = True) self.assertEquals(coordinates, result["faces"]) different_coordinates = [[122, 32, 111, 152]] uploader.explicit(result["public_id"], face_coordinates = different_coordinates, faces = True, type = "upload") info = api.resource(result["public_id"], faces = True) self.assertEquals(different_coordinates, info["faces"])
def test_face_coordinates(self): """should allow sending face coordinates""" coordinates = [[120, 30, 109, 150], [121, 31, 110, 151]] result = uploader.upload(TEST_IMAGE, face_coordinates = coordinates, faces = True, tags=TEST_TAG) self.assertEqual(coordinates, result["faces"]) different_coordinates = [[122, 32, 111, 152]] custom_coordinates = [1,2,3,4] uploader.explicit(result["public_id"], face_coordinates = different_coordinates, custom_coordinates = custom_coordinates, faces = True, type = "upload") info = api.resource(result["public_id"], faces = True, coordinates = True) self.assertEqual(different_coordinates, info["faces"]) self.assertEqual({"faces": different_coordinates, "custom": [custom_coordinates]}, info["coordinates"])
def test_face_coordinates(self): """should allow sending face coordinates""" coordinates = [[120, 30, 109, 150], [121, 31, 110, 151]] result_coordinates = [[120, 30, 109, 51], [121, 31, 110, 51]] result = uploader.upload(TEST_IMAGE, face_coordinates=coordinates, faces=True, tags=[UNIQUE_TAG]) self.assertEqual(result_coordinates, result["faces"]) different_coordinates = [[122, 32, 111, 152]] custom_coordinates = [1, 2, 3, 4] uploader.explicit(result["public_id"], face_coordinates=different_coordinates, custom_coordinates=custom_coordinates, type="upload") info = api.resource(result["public_id"], faces=True, coordinates=True) self.assertEqual(different_coordinates, info["faces"]) self.assertEqual({"faces": different_coordinates, "custom": [custom_coordinates]}, info["coordinates"])
def test_face_coordinates(self): """should allow sending face coordinates""" coordinates = [[120, 30, 109, 150], [121, 31, 110, 151]] result = uploader.upload("tests/logo.png", face_coordinates=coordinates, faces=True) self.assertEquals(coordinates, result["faces"]) different_coordinates = [[122, 32, 111, 152]] uploader.explicit(result["public_id"], face_coordinates=different_coordinates, faces=True, type="upload") info = api.resource(result["public_id"], faces=True) self.assertEquals(different_coordinates, info["faces"])
def test07b_resource_allows_derived_next_cursor_parameter(self, mocker): """ should allow derived_next_cursor parameter """ mocker.return_value = MOCK_RESPONSE api.resource(API_TEST_ID, derived_next_cursor="foo") args, kwargs = mocker.call_args self.assertTrue("derived_next_cursor" in get_params(args))
def test_context(self): """should allow sending context""" context = {"caption": "some caption", "alt": "alternative"} result = uploader.upload(TEST_IMAGE, context=context, tags=TEST_TAG) info = api.resource(result["public_id"], context=True) self.assertEqual({"custom": context}, info["context"])
def save(self, *args, **kwargs): if not self.image: self.image = api.resource('user_pics/default').get('url', None) super(User, self).save(*args, **kwargs)
def test_context(self): """should allow sending context""" context = {"caption": "some caption", "alt": "alternative"} result = uploader.upload("tests/logo.png", context = context) info = api.resource(result["public_id"], context = True) self.assertEquals({"custom": context}, info["context"])
def test_context(self): """should allow sending context""" context = {"caption": "some caption", "alt": "alternative"} result = uploader.upload("tests/logo.png", context=context) info = api.resource(result["public_id"], context=True) self.assertEquals({"custom": context}, info["context"])
def test_context(self): """should allow sending context""" context = {"caption": "some caption", "alt": "alternative|alt=a"} result = uploader.upload(TEST_IMAGE, context=context, tags=[UNIQUE_TAG]) info = api.resource(result["public_id"], context=True) self.assertEqual({"custom": context}, info["context"])