From 69a5e02b4722bf3b5c9c4ead350d2f9a359a04b7 Mon Sep 17 00:00:00 2001 From: Tal Lev-Ami Date: Wed, 2 Jul 2014 14:36:52 +0300 Subject: [PATCH] Support for background_removal parameter in upload and update --- cloudinary/api.py | 2 +- cloudinary/utils.py | 1 + tests/api_test.py | 6 ++++++ tests/uploader_test.py | 6 ++++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/cloudinary/api.py b/cloudinary/api.py index 561c8961..a5b2c41d 100644 --- a/cloudinary/api.py +++ b/cloudinary/api.py @@ -77,7 +77,7 @@ def update(public_id, **options): resource_type = options.pop("resource_type", "image") type = options.pop("type", "upload") uri = ["resources", resource_type, type, public_id] - upload_options = only(options, "moderation_status", "raw_convert", "ocr", "categorization", "detection", "similarity_search") + upload_options = only(options, "moderation_status", "raw_convert", "ocr", "categorization", "detection", "similarity_search", "background_removal") if "tags" in options: upload_options["tags"] = ",".join(utils.build_array(options["tags"])) if "face_coordinates" in options: upload_options["face_coordinates"] = utils.encode_double_array(options.get("face_coordinates")) if "context" in options: upload_options["context"] = utils.encode_dict(options.get("context")) diff --git a/cloudinary/utils.py b/cloudinary/utils.py index 175fad18..25d5f27d 100644 --- a/cloudinary/utils.py +++ b/cloudinary/utils.py @@ -285,6 +285,7 @@ def build_upload_params(**options): "categorization": options.get("categorization"), "detection": options.get("detection"), "similarity_search": options.get("similarity_search"), + "background_removal": options.get("background_removal"), "upload_preset": options.get("upload_preset"), "phash": options.get("phash"), "auto_tagging": options.get("auto_tagging") and float(options.get("auto_tagging"))} diff --git a/tests/api_test.py b/tests/api_test.py index 9add64d5..b58ce79c 100644 --- a/tests/api_test.py +++ b/tests/api_test.py @@ -348,5 +348,11 @@ def test31_update_upload_presets(self): self.assertEquals(preset["settings"], {"folder": "folder", "colors": True, "disallow_public_id": True}) api.delete_upload_preset(name) + @unittest.skipUnless(cloudinary.config().api_secret, "requires api_key/api_secret") + def test32_background_removal(self): + """ should support requesting background_removal """ + with self.assertRaisesRegexp(api.BadRequest, 'Illegal value'): + api.update("api_test", background_removal="illegal") + if __name__ == '__main__': unittest.main() diff --git a/tests/uploader_test.py b/tests/uploader_test.py index ca81ca99..edb4bafa 100644 --- a/tests/uploader_test.py +++ b/tests/uploader_test.py @@ -184,5 +184,11 @@ def test_upload_preset(self): self.assertRegexpMatches(result["public_id"], '^upload_folder\/[a-z0-9]+$') api.delete_upload_preset(preset["name"]) + @unittest.skipUnless(cloudinary.config().api_secret, "requires api_key/api_secret") + def test_background_removal(self): + """ should support requesting background_removal """ + with self.assertRaisesRegexp(api.Error, 'illegal is not a valid'): + uploader.upload("tests/logo.png", background_removal="illegal") + if __name__ == '__main__': unittest.main()