示例#1
0
 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)
示例#2
0
 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")
示例#3
0
 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"])
示例#4
0
 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)
示例#5
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")
示例#6
0
 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)
示例#7
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)
示例#8
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"]))
示例#9
0
 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"])
示例#10
0
文件: cloud.py 项目: acdha/image-api
    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
示例#11
0
 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)
示例#12
0
 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"))
示例#13
0
 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))
示例#14
0
 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"))
示例#15
0
 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"))
示例#16
0
 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)
示例#17
0
 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)
示例#18
0
 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)
示例#19
0
    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"])
示例#20
0
    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"])
示例#21
0
    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"])
示例#22
0
    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"])
示例#23
0
 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))
示例#24
0
 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"])
示例#25
0
 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)
示例#26
0
 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"])
示例#27
0
 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"])
示例#28
0
 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"])