def test15_transformation_create(self, mocker): """ should allow creating named transformation """ mocker.return_value = MOCK_RESPONSE api.create_transformation(API_TEST_TRANS, {"crop": "scale", "width": 102}) args, kargs = mocker.call_args self.assertEqual(args[0], 'POST') self.assertTrue(get_uri(args).endswith('/transformations'), get_uri(args)) self.assertEqual(get_params(args)['transformation'], 'c_scale,w_102') self.assertEqual(API_TEST_TRANS, get_params(args)['name'])
def test06a_resources_by_ids(self, mocker): """ should allow listing resources by public ids """ mocker.return_value = MOCK_RESPONSE api.resources_by_ids([API_TEST_ID, API_TEST_ID2], context=True, tags=True) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith('/resources/image/upload'), get_uri(args)) self.assertIn(API_TEST_ID, get_list_param(mocker, 'public_ids')) self.assertIn(API_TEST_ID2, get_list_param(mocker, 'public_ids')) self.assertEqual(get_param(mocker, 'context'), True) self.assertEqual(get_param(mocker, 'tags'), True)
def test06b_resources_direction(self, mocker): """ should allow listing resources in both directions """ mocker.return_value = MOCK_RESPONSE api.resources_by_tag(API_TEST_TAG, direction="asc", type="upload") args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith('/resources/image/tags/{}'.format(API_TEST_TAG))) self.assertEqual(get_params(args)['direction'], 'asc') api.resources_by_tag(API_TEST_TAG, direction="desc", type="upload") args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith('/resources/image/tags/{}'.format(API_TEST_TAG))) self.assertEqual(get_params(args)['direction'], 'desc')
def test17_transformation_implicit(self, mocker): """ should allow deleting implicit transformation """ mocker.return_value = MOCK_RESPONSE api.delete_transformation(API_TEST_TRANS_SCALE100) args, kargs = mocker.call_args self.assertEqual(args[0], 'DELETE') self.assertTrue(get_uri(args).endswith('/transformations/{0}'.format(API_TEST_TRANS_SCALE100_STR)))
def test_publish_by_tag(self, mocker): mocker.return_value = MOCK_RESPONSE api.publish_by_tag("pub_tag") self.assertTrue( get_uri(mocker.call_args[0]).endswith( '/resources/image/publish_resources')) self.assertEqual(get_param(mocker, 'tag'), "pub_tag")
def test09b_delete_resources_by_tag(self, mocker): """ should allow deleting resources by tags """ mocker.return_value = MOCK_RESPONSE api.delete_resources_by_tag("api_test_tag_for_delete") args, kargs = mocker.call_args self.assertEqual(args[0], 'DELETE') self.assertTrue(get_uri(args).endswith('/resources/image/tags/api_test_tag_for_delete'))
def test11_tags_prefix(self, mocker): """ should allow listing tag by prefix """ mocker.return_value = MOCK_RESPONSE api.tags(prefix=API_TEST_PREFIX) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith('/tags/image')) self.assertEqual(get_params(args)['prefix'], API_TEST_PREFIX)
def test30_delete_upload_presets(self, mocker): """ should allow deleting upload_presets """ mocker.return_value = MOCK_RESPONSE api.delete_upload_preset(API_TEST_PRESET) args, kargs = mocker.call_args self.assertEqual(args[0], 'DELETE') self.assertTrue(get_uri(args).endswith('/upload_presets/{}'.format(API_TEST_PRESET)))
def test08_delete_derived(self, mocker): """ should allow deleting derived resource """ mocker.return_value = MOCK_RESPONSE api.delete_derived_resources([API_TEST_ID]) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith('/derived_resources')) self.assertIn(API_TEST_ID, get_list_param(mocker, 'derived_resource_ids'))
def test14_transformation_update(self, mocker): """ should allow updating transformation allowed_for_strict """ mocker.return_value = MOCK_RESPONSE api.update_transformation(API_TEST_TRANS_SCALE100_STR, allowed_for_strict=True) args, kargs = mocker.call_args self.assertEqual(args[0], 'PUT') self.assertTrue(get_uri(args).endswith('/transformations/{0}'.format(API_TEST_TRANS_SCALE100_STR))) self.assertTrue(get_params(args)['allowed_for_strict'])
def test_publish_by_ids(self, mocker): mocker.return_value = MOCK_RESPONSE api.publish_by_ids(["pub1", "pub2"]) self.assertTrue( get_uri(mocker.call_args[0]).endswith( '/resources/image/publish_resources')) self.assertIn('pub1', get_list_param(mocker, 'public_ids')) self.assertIn('pub2', get_list_param(mocker, 'public_ids'))
def test17_transformation_implicit(self, mocker): """ should allow deleting implicit transformation """ mocker.return_value = MOCK_RESPONSE api.delete_transformation(API_TEST_TRANS_SCALE100) args, kargs = mocker.call_args self.assertEqual(args[0], 'DELETE') self.assertTrue(get_uri(args).endswith('/transformations')) self.assertEqual(API_TEST_TRANS_SCALE100_STR, get_params(args)['transformation'])
def test09a_delete_resources_by_prefix(self, mocker): """ should allow deleting resources by prefix """ mocker.return_value = MOCK_RESPONSE api.delete_resources_by_prefix("api_test") args, kargs = mocker.call_args self.assertEqual(args[0], 'DELETE') self.assertTrue(get_uri(args).endswith('/resources/image/upload')) self.assertEqual(get_params(args)['prefix'], "api_test")
def test15c_transformation_create_unnamed_with_empty_format(self, mocker): """ should allow creating unnamed transformation with empty extension""" mocker.return_value = MOCK_RESPONSE with_extension = dict(API_TEST_TRANS_SCALE100) with_extension.update(format="") with_extension_str = API_TEST_TRANS_SCALE100_STR + "/" api.create_transformation(with_extension_str, with_extension) args, kargs = mocker.call_args self.assertEqual(args[0], 'POST') self.assertTrue(get_uri(args).endswith('/transformations'), get_uri(args)) self.assertEqual(with_extension_str, get_params(args)['transformation']) self.assertEqual(with_extension_str, get_params(args)['name'])
def test06_resources_tag(self, mocker): """ should allow listing resources by tag """ mocker.return_value = MOCK_RESPONSE api.resources_by_tag(API_TEST_TAG, context=True, tags=True) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith('/resources/image/tags/{}'.format(API_TEST_TAG))) self.assertTrue(get_params(args)['context']) self.assertTrue(get_params(args)['tags'])
def test04_resources_types(self, mocker): """ should allow listing resources by type """ mocker.return_value = MOCK_RESPONSE api.resources(type="upload", context=True, tags=True) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith('/resources/image/upload')) self.assertTrue(get_params(args)['context']) self.assertTrue(get_params(args)['tags'])
def test05_resources_prefix(self, mocker): """ should allow listing resources by prefix """ mocker.return_value = MOCK_RESPONSE api.resources(prefix=API_TEST_PREFIX, context=True, tags=True, type="upload") args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith('/resources/image/upload')) self.assertEqual(get_params(args)['prefix'], API_TEST_PREFIX) self.assertTrue(get_params(args)['context']) self.assertTrue(get_params(args)['tags'])
def test14_transformation_update(self, mocker): """ should allow updating transformation allowed_for_strict """ mocker.return_value = MOCK_RESPONSE api.update_transformation(API_TEST_TRANS_SCALE100_STR, allowed_for_strict=True) args, kargs = mocker.call_args self.assertEqual(args[0], 'PUT') self.assertTrue(get_uri(args).endswith('/transformations')) self.assertTrue(get_params(args)['allowed_for_strict']) self.assertEqual(API_TEST_TRANS_SCALE100_STR, get_params(args)['transformation'])
def test01_list_metadata_fields(self, mocker): """Test getting a list of all metadata fields""" mocker.return_value = MOCK_RESPONSE api.list_metadata_fields() args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith("/metadata_fields")) self.assertEqual(get_method(mocker), "GET") self.assertFalse(get_params(args).get("fields"))
def test_api_url_escapes_special_characters(self, mocker): """ should escape special characters in api url """ mocker.return_value = MOCK_RESPONSE api.create_folder("a b+c%20d-e??f(g)h") args, kwargs = mocker.call_args self.assertTrue(get_uri(args).endswith('a%20b%2Bc%20d-e%3F%3Ff%28g%29h'))
def test31_update_upload_presets(self, mocker): """ should allow getting a single upload_preset """ mocker.return_value = MOCK_RESPONSE api.update_upload_preset(API_TEST_PRESET, colors=True, unsigned=True, disallow_public_id=True) args, kargs = mocker.call_args self.assertEqual(args[0], 'PUT') self.assertTrue(get_uri(args).endswith('/upload_presets/{}'.format(API_TEST_PRESET))) self.assertTrue(get_params(args)['colors']) self.assertTrue(get_params(args)['unsigned']) self.assertTrue(get_params(args)['disallow_public_id'])
def test28a_list_upload_presets(self, mocker): """ should allow listing upload_presets """ mocker.return_value = MOCK_RESPONSE api.upload_presets() args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith("/upload_presets")) self.assertEqual("GET", get_method(mocker))
def test09_delete_resources_tuple(self, mocker): """ should allow deleting resources """ mocker.return_value = MOCK_RESPONSE api.delete_resources((API_TEST_ID, API_TEST_ID2,)) args, kargs = mocker.call_args self.assertEqual(args[0], 'DELETE') self.assertTrue(get_uri(args).endswith('/resources/image/upload')) param = get_list_param(mocker, 'public_ids') self.assertIn(API_TEST_ID, param) self.assertIn(API_TEST_ID2, param)
def test_delete_folder(self, mocker): """ should delete folder """ mocker.return_value = MOCK_RESPONSE api.delete_folder(UNIQUE_TEST_FOLDER) args, kargs = mocker.call_args self.assertEqual("DELETE", get_method(mocker)) self.assertTrue(get_uri(args).endswith('/folders/' + UNIQUE_TEST_FOLDER))
def test29_get_upload_presets(self, mocker): """ should allow getting a single upload_preset """ mocker.return_value = MOCK_RESPONSE api.upload_preset(API_TEST_PRESET) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith("/upload_presets/" + API_TEST_PRESET)) self.assertEqual("GET", get_method(mocker))
def test10_delete_metadata_field(self, mocker): """Test deleting a metadata field definition by its external id.""" mocker.return_value = MOCK_RESPONSE api.delete_metadata_field(EXTERNAL_ID_DELETE) args, kargs = mocker.call_args target_uri = "/metadata_fields/{}".format(EXTERNAL_ID_DELETE) self.assertTrue(get_uri(args).endswith(target_uri)) self.assertEqual(get_method(mocker), "DELETE") self.assertEqual(json.loads(kargs["body"].decode('utf-8')), {})
def test28_create_upload_preset(self, mocker): """ should allow creating upload_presets """ mocker.return_value = MOCK_RESPONSE api.create_upload_preset(name=API_TEST_PRESET, folder="folder") args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith("/upload_presets")) self.assertEqual("POST", get_method(mocker)) self.assertEqual(get_param(mocker, "name"), API_TEST_PRESET) self.assertEqual(get_param(mocker, "folder"), "folder")
def test_upload_preset(self, mocker): """ should support unsigned uploading using presets """ mocker.return_value = MOCK_RESPONSE uploader.unsigned_upload(TEST_IMAGE, API_TEST_PRESET) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith("/image/upload")) self.assertEqual("POST", get_method(mocker)) self.assertIsNotNone(get_param(mocker, "file")) self.assertIsNone(get_param(mocker, "signature")) self.assertEqual(get_param(mocker, "upload_preset"), API_TEST_PRESET)
def test_upload_preset(self, mocker): """ should support unsigned uploading using presets """ mocker.return_value = MOCK_RESPONSE uploader.unsigned_upload(TEST_IMAGE, API_TEST_PRESET) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith("/image/upload")) self.assertEqual("POST", get_method(mocker)) self.assertIsNotNone(get_param(mocker, "file")) self.assertIsNone(get_param(mocker, "signature")) self.assertEqual(get_param(mocker, "upload_preset"), API_TEST_PRESET)
def test04_create_int_metadata_field(self, mocker): """Test creating an integer metadata field""" mocker.return_value = MOCK_RESPONSE api.add_metadata_field({ "external_id": EXTERNAL_ID_INT, "label": EXTERNAL_ID_INT, "type": "integer", }) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith("/metadata_fields")) self.assertEqual(get_method(mocker), "POST") self.assertEqual(json.loads(kargs["body"].decode('utf-8')), { "type": "integer", "external_id": EXTERNAL_ID_INT, "label": EXTERNAL_ID_INT, })
def test_create_archive_multiple_resource_types(self, mocker): """should allow fully_qualified_public_ids""" mocker.return_value = MOCK_RESPONSE test_ids = [ "image/upload/" + UNIQUE_TEST_ID, "video/upload/" + UNIQUE_TEST_ID, "raw/upload/" + UNIQUE_TEST_ID, ] uploader.create_zip(resource_type='auto', fully_qualified_public_ids=test_ids) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith('/auto/generate_archive')) self.assertEqual(test_ids, get_list_param(mocker, 'fully_qualified_public_ids'))
def test06_create_enum_metadata_field(self, mocker): """Test creating an Enum metadata field""" mocker.return_value = MOCK_RESPONSE api.add_metadata_field({ "datasource": { "values": DATASOURCE_SINGLE, }, "external_id": EXTERNAL_ID_ENUM, "label": EXTERNAL_ID_ENUM, "type": "enum", }) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith("/metadata_fields")) self.assertEqual(get_method(mocker), "POST") self.assertEqual(json.loads(kargs["body"].decode('utf-8')), { "datasource": { "values": DATASOURCE_SINGLE, }, "external_id": EXTERNAL_ID_ENUM, "label": EXTERNAL_ID_ENUM, "type": "enum", })
def test02_resources(self, mocker): """ should allow listing resources """ mocker.return_value = MOCK_RESPONSE api.resources() args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith('/resources/image'))
def test_publish_by_tag(self, mocker): mocker.return_value = MOCK_RESPONSE api.publish_by_tag("pub_tag") self.assertTrue(get_uri(mocker.call_args[0]).endswith('/resources/image/publish_resources')) self.assertEqual(get_param(mocker, 'tag'), "pub_tag")
def test_publish_by_ids(self, mocker): mocker.return_value = MOCK_RESPONSE api.publish_by_ids(["pub1", "pub2"]) self.assertTrue(get_uri(mocker.call_args[0]).endswith('/resources/image/publish_resources')) self.assertIn('pub1', get_list_param(mocker, 'public_ids')) self.assertIn('pub2', get_list_param(mocker, 'public_ids'))
def test10_tags(self, mocker): """ should allow listing tags """ mocker.return_value = MOCK_RESPONSE api.tags() args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith('/tags/image'))