|
5 | 5 | import cloudinary |
6 | 6 | from cloudinary import api |
7 | 7 | from cloudinary import uploader |
8 | | -from test.helper_test import TEST_IMAGE, get_headers, get_params, URLLIB3_REQUEST, patch |
| 8 | +from test.helper_test import TEST_IMAGE, get_headers, get_params, get_uri, URLLIB3_REQUEST, patch |
9 | 9 | from test.test_api import MOCK_RESPONSE |
10 | 10 | from test.test_config import OAUTH_TOKEN, CLOUD_NAME, API_KEY, API_SECRET |
11 | 11 | from test.test_uploader import API_TEST_PRESET |
@@ -61,6 +61,29 @@ def test_missing_credentials_admin_api(self, mocker): |
61 | 61 | with six.assertRaisesRegex(self, Exception, "Must supply api_key"): |
62 | 62 | api.ping() |
63 | 63 |
|
| 64 | + @patch(URLLIB3_REQUEST) |
| 65 | + def test_temporary_config_admin_api(self, mocker): |
| 66 | + self.config.oauth_token = None |
| 67 | + self.config.api_key = None |
| 68 | + self.config.api_secret = None |
| 69 | + mocker.return_value = MOCK_RESPONSE |
| 70 | + |
| 71 | + api.ping(cloudinary_config={ |
| 72 | + "cloud_name": "temporary_cloud", |
| 73 | + "api_key": "temporary_key", |
| 74 | + "api_secret": "temporary_secret", |
| 75 | + }) |
| 76 | + |
| 77 | + headers = get_headers(mocker) |
| 78 | + |
| 79 | + self.assertTrue("authorization" in headers) |
| 80 | + self.assertEqual("Basic dGVtcG9yYXJ5X2tleTp0ZW1wb3Jhcnlfc2VjcmV0", headers["authorization"]) |
| 81 | + self.assertTrue(get_uri(mocker).endswith("/temporary_cloud/ping")) |
| 82 | + |
| 83 | + self.assertIsNone(self.config.api_key) |
| 84 | + self.assertIsNone(self.config.api_secret) |
| 85 | + self.assertEqual(CLOUD_NAME, self.config.cloud_name) |
| 86 | + |
64 | 87 | @patch(URLLIB3_REQUEST) |
65 | 88 | def test_oauth_token_upload_api(self, mocker): |
66 | 89 | self.config.oauth_token = OAUTH_TOKEN |
@@ -119,6 +142,31 @@ def test_missing_credentials_upload_api(self, mocker): |
119 | 142 | params = get_params(mocker) |
120 | 143 | self.assertTrue("upload_preset" in params) |
121 | 144 |
|
| 145 | + @patch(URLLIB3_REQUEST) |
| 146 | + def test_temporary_config_upload_api(self, mocker): |
| 147 | + self.config.oauth_token = None |
| 148 | + self.config.api_key = None |
| 149 | + self.config.api_secret = None |
| 150 | + mocker.return_value = MOCK_RESPONSE |
| 151 | + |
| 152 | + uploader.upload(TEST_IMAGE, cloudinary_config={ |
| 153 | + "cloud_name": "temporary_cloud", |
| 154 | + "api_key": "temporary_key", |
| 155 | + "api_secret": "temporary_secret", |
| 156 | + "upload_preset": API_TEST_PRESET, |
| 157 | + }) |
| 158 | + |
| 159 | + self.assertTrue(get_uri(mocker).endswith("/temporary_cloud/image/upload")) |
| 160 | + |
| 161 | + params = get_params(mocker) |
| 162 | + self.assertEqual("temporary_key", params["api_key"]) |
| 163 | + self.assertEqual(API_TEST_PRESET, params["upload_preset"]) |
| 164 | + self.assertIn("signature", params) |
| 165 | + |
| 166 | + self.assertIsNone(self.config.api_key) |
| 167 | + self.assertIsNone(self.config.api_secret) |
| 168 | + self.assertEqual(CLOUD_NAME, self.config.cloud_name) |
| 169 | + |
122 | 170 |
|
123 | 171 | if __name__ == '__main__': |
124 | 172 | unittest.main() |
0 commit comments