From b298c5d6f36acabe8e5a75d0408163c61040c125 Mon Sep 17 00:00:00 2001 From: Constantine Nathanson <35217733+const-cloudinary@users.noreply.github.com> Date: Thu, 5 Jan 2023 15:00:41 +0200 Subject: [PATCH] Add support for `media_metadata` API parameter --- cloudinary/api.py | 2 +- cloudinary/utils.py | 1 + test/test_api.py | 5 +++-- test/test_uploader.py | 29 +++++++++-------------------- 4 files changed, 14 insertions(+), 23 deletions(-) diff --git a/cloudinary/api.py b/cloudinary/api.py index ad78bf6..bc3b6d4 100644 --- a/cloudinary/api.py +++ b/cloudinary/api.py @@ -188,7 +188,7 @@ def _prepare_asset_details_params(**options): :internal """ - return only(options, "exif", "faces", "colors", "image_metadata", "cinemagraph_analysis", + return only(options, "exif", "faces", "colors", "image_metadata", "media_metadata", "cinemagraph_analysis", "pages", "phash", "coordinates", "max_results", "quality_analysis", "derived_next_cursor", "accessibility_analysis", "versions") diff --git a/cloudinary/utils.py b/cloudinary/utils.py index 9222f3f..c919f3f 100644 --- a/cloudinary/utils.py +++ b/cloudinary/utils.py @@ -78,6 +78,7 @@ "backup", "faces", "image_metadata", + "media_metadata", "exif", "colors", "use_filename", diff --git a/test/test_api.py b/test/test_api.py index b5bef04..5d080d7 100644 --- a/test/test_api.py +++ b/test/test_api.py @@ -288,13 +288,14 @@ def test07_resource_metadata(self): @unittest.skipUnless(cloudinary.config().api_secret, "requires api_key/api_secret") def test07_a_resource_by_asset_id(self, mocker): mocker.return_value = MOCK_RESPONSE - api.resource_by_asset_id(API_TEST_ID, quality_analysis=True , colors=True ,accessibility_analysis=True) + api.resource_by_asset_id(API_TEST_ID, quality_analysis=True, colors=True, accessibility_analysis=True, + media_metadata=True) args, kargs = mocker.call_args self.assertTrue(get_uri(args).endswith('/resources/{}'.format(API_TEST_ID))) self.assertTrue(get_params(args)['quality_analysis']) self.assertTrue(get_params(args)['colors']) self.assertTrue(get_params(args)['accessibility_analysis']) - + self.assertTrue(get_params(args)['media_metadata']) @unittest.skipUnless(cloudinary.config().api_secret, "requires api_key/api_secret") def test07_b_resource_by_asset_id(self): diff --git a/test/test_uploader.py b/test/test_uploader.py index ee70acf..56dddcd 100644 --- a/test/test_uploader.py +++ b/test/test_uploader.py @@ -929,34 +929,23 @@ def test_access_control(self, request_mock): uploader.upload(TEST_IMAGE, access_control=invalid_value) @patch('urllib3.request.RequestMethods.request') - def test_cinemagraph_analysis(self, request_mock): - """Should support cinemagraph analysis in upload and explicit""" + def test_various_upload_parameters(self, request_mock): + """Should support various parameters in upload and explicit""" request_mock.return_value = MOCK_RESPONSE - uploader.upload(TEST_IMAGE, cinemagraph_analysis=True) + options = {'cinemagraph_analysis': True, 'accessibility_analysis':True, 'media_metadata':True} + uploader.upload(TEST_IMAGE, **options) params = get_params(request_mock.call_args[0]) - self.assertIn("cinemagraph_analysis", params) + for param in options.keys(): + self.assertIn(param, params) - uploader.explicit(TEST_IMAGE, cinemagraph_analysis=True) + uploader.explicit(TEST_IMAGE, **options) params = get_params(request_mock.call_args[0]) - self.assertIn("cinemagraph_analysis", params) + for param in options.keys(): + self.assertIn(param, params) - @patch('urllib3.request.RequestMethods.request') - def test_accessibility_analysis(self, request_mock): - """Should support accessibility analysis in upload and explicit""" - request_mock.return_value = MOCK_RESPONSE - - uploader.upload(TEST_IMAGE, accessibility_analysis=True) - - params = get_params(request_mock.call_args[0]) - self.assertIn("accessibility_analysis", params) - - uploader.explicit(TEST_IMAGE, accessibility_analysis=True) - - params = get_params(request_mock.call_args[0]) - self.assertIn("accessibility_analysis", params) @unittest.skipUnless(cloudinary.config().api_secret, "requires api_key/api_secret") def test_eval_upload_parameter(self):