diff --git a/imagekitio/file.py b/imagekitio/file.py index 92092ee..995e28f 100644 --- a/imagekitio/file.py +++ b/imagekitio/file.py @@ -330,7 +330,8 @@ def copy_file( url = "{}/v1/files/copy".format(URL.API_BASE_URL) headers = {"Content-Type": "application/json"} headers.update(self.request.create_headers()) - formatted_options = dumps(request_formatter(options.__dict__)) if options is not None else dict() + formatted_options = dumps(request_formatter(options.__dict__)) + print("here formatted options:--->", formatted_options) resp = self.request.request( method="Post", url=url, headers=headers, data=formatted_options ) diff --git a/imagekitio/models/results/FileResult.py b/imagekitio/models/results/FileResult.py index 2263f5b..187dbdb 100644 --- a/imagekitio/models/results/FileResult.py +++ b/imagekitio/models/results/FileResult.py @@ -12,7 +12,7 @@ def __init__( updated_at, file_id, tags, - ai_tags: List[AITags] = [], + ai_tags: List[dict] = [], version_info: dict = {}, embedded_metadata: dict = {}, custom_coordinates: str = "", @@ -38,9 +38,7 @@ def __init__( self.ai_tags: List[AITags] = [] if ai_tags is not None: for i in ai_tags: - self.ai_tags.append(AITags(i["name"] if "name" in i else None, - i["confidence"] if "confidence" in i else None, - i["source"] if 'source' in i else None)) + self.ai_tags.append(AITags(i["name"], i["confidence"], i["source"])) self.version_info = VersionInfo(version_info["id"], version_info["name"]) self.embedded_metadata = embedded_metadata self.custom_coordinates = custom_coordinates diff --git a/imagekitio/models/results/FileResultWithResponseMetadata.py b/imagekitio/models/results/FileResultWithResponseMetadata.py index bc1f6a9..eafbef1 100644 --- a/imagekitio/models/results/FileResultWithResponseMetadata.py +++ b/imagekitio/models/results/FileResultWithResponseMetadata.py @@ -11,10 +11,10 @@ def __init__( self, type, name, - created_at=None, - updated_at=None, - file_id=None, - tags=None, + created_at, + updated_at, + file_id, + tags, ai_tags: List[AITags] = AITags(None, None, None), version_info: VersionInfo = VersionInfo(None, None), embedded_metadata=None, diff --git a/tests/test_custom_metadata_fields_ops.py b/tests/test_custom_metadata_fields_ops.py index eddf066..68d8812 100644 --- a/tests/test_custom_metadata_fields_ops.py +++ b/tests/test_custom_metadata_fields_ops.py @@ -21,6 +21,7 @@ class TestCustomMetadataFields(ClientTestCase): field_id = "field_id" + @responses.activate def test_get_custom_metadata_fields_fails_on_unauthenticated_request(self): """ @@ -33,8 +34,8 @@ def test_get_custom_metadata_fields_fails_on_unauthenticated_request(self): responses.GET, url, status=403, - body='''{"message": "Your account cannot be authenticated." - , "help": "For support kindly contact us at support@imagekit.io ."}''', + body="'message': 'Your account cannot be authenticated.'" + ", 'help': 'For support kindly contact us at support@imagekit.io .'", ) self.client.get_custom_metadata_fields(True) self.assertRaises(ForbiddenException) diff --git a/tests/test_files_ops.py b/tests/test_files_ops.py index 9b2437d..f59465c 100644 --- a/tests/test_files_ops.py +++ b/tests/test_files_ops.py @@ -60,40 +60,6 @@ def test_upload_fails_on_unauthenticated_request(self): body="""{"message": "Your account cannot be authenticated." , "help": "For support kindly contact us at support@imagekit.io ."}""", ) - self.client.upload_file( - file=self.image, - file_name=self.filename, - options=UploadFileRequestOptions( - use_unique_file_name=False, - tags=["abc", "def"], - folder="/testing-python-folder/", - is_private_file=False, - custom_coordinates="10,10,20,20", - response_fields=[ - "tags", - "custom_coordinates", - "is_private_file", - "embedded_metadata", - "custom_metadata", - ], - extensions=( - { - "name": "remove-bg", - "options": {"add_shadow": True, "bg_color": "pink"}, - }, - { - "name": "google-auto-tagging", - "minConfidence": 80, - "maxTags": 10, - }, - ), - webhook_url="https://webhook.site/c78d617f-33bc-40d9-9e61-608999721e2e", - overwrite_file=True, - overwrite_a_i_tags=False, - overwrite_tags=False, - overwrite_custom_metadata=True, - custom_metadata={"testss": 12}, - )) self.assertRaises(ForbiddenException) except ForbiddenException as e: self.assertEqual(e.message, "Your account cannot be authenticated.") @@ -176,63 +142,40 @@ def test_binary_upload_succeeds(self): ), ) mock_response_metadata = { - 'headers': { - 'Content-Type': 'text/plain', - 'Accept-Encoding': 'gzip, deflate', - 'Authorization': 'Basic ZmFrZTEyMjo=' + "raw": { + "fileId": "fake_file_id1234", + "name": "file_name.jpg", + "size": 102117, + "versionInfo": {"id": "62d670648cdb697522602b45", "name": "Version 11"}, + }, + "httpStatusCode": 200, + "headers": { + "Content-Type": "text/plain", + "Accept-Encoding": "gzip, deflate", + "Authorization": "Basic ZmFrZTEyMjo=", }, - 'http_status_code': 200, - 'raw': { - 'AITags': [{ - 'confidence': 97.66, - 'name': 'Computer', - 'source': 'google-auto-tagging' - }, { - 'confidence': 94.96, - 'name': 'Personal computer', - 'source': 'google-auto-tagging' - }], - 'extensionStatus': { - 'google-auto-tagging': 'success', - 'remove-bg': 'pending' - }, - 'fileId': 'fake_file_id1234', - 'filePath': '/testing-python-folder/file_name.jpg', - 'fileType': 'image', - 'height': 700, - 'isPrivateFile': True, - 'name': 'file_name.jpg', - 'size': 102117, - 'tags': ['abc', 'def'], - 'thumbnailUrl': 'https://ik.imagekit.io/your_imagekit_id/tr:n-ik_ml_thumbnail/testing-python-folder/file_name.jpg', - 'url': 'https://ik.imagekit.io/your_imagekit_id/testing-python-folder/file_name.jpg', - 'versionInfo': { - 'id': '62d670648cdb697522602b45', - 'name': 'Version 11' - }, - 'width': 1050 - } } - request_body = make_string_to_single_line("""{ - \'file\': \"<_io.BufferedReader name=\'sample.jpg\'>\", - \'fileName\': \'file_name.jpg\', - \'useUniqueFileName\': \'false\', - \'tags\': \'abc,def\', - \'folder\': \'/testing-python-folder/\', - \'isPrivateFile\': \'true\', - \'responseFields\': \'isPrivateFile,tags\', - \'extensions\': \'[{\"name\": \"remove-bg\", \"options\": {\"add_shadow\": true, \"bg_color\": \"pink\"}}, - {\"name\": \"google-auto-tagging\", \"minConfidence\": 80, \"maxTags\": 10}]\', - \'webhookUrl\': \'url\', - \'overwriteFile\': \'true\', - \'overwriteAITags\': \'false\', - \'overwriteTags\': \'false\', - \'overwriteCustomMetadata\': \'true\', - \'customMetadata\': \'{\"test100\": 11}\' - }""") + request_body = make_string_to_single_line( + """{'customMetadata': '{"test100": 11}', + 'extensions': '[{"name": "remove-bg", "options": {"add_shadow": true, ' + '"bg_color": "pink"}}, {"name": "google-auto-tagging", ' + '"minConfidence": 80, "maxTags": 10}]', + 'file': "<_io.BufferedReader name='sample.jpg'>", + 'fileName': 'file_name.jpg', + 'folder': '/testing-python-folder/', + 'isPrivateFile': 'true', + 'overwriteAITags': 'false', + 'overwriteCustomMetadata': 'true', + 'overwriteFile': 'true', + 'overwriteTags': 'false', + 'responseFields': 'isPrivateFile,tags', + 'tags': 'abc,def', + 'useUniqueFileName': 'false', + 'webhookUrl': 'url'}""" + ) actual_body = responses.calls[0].request.body.__dict__.__getitem__("fields") actual_body["file"] = "<_io.BufferedReader name='sample.jpg'>" - self.assertEqual(request_body, str(actual_body)) + self.assertEqual(request_body, actual_body) self.assertEqual( camel_dict_to_snake_dict(mock_response_metadata), resp.response_metadata.__dict__, @@ -271,11 +214,13 @@ def test_upload_fails_with_400_exception(self) -> None: responses.POST, url, status=400, - body='''{ + body=json.dumps( + { "message": "A file with the same name already exists at the exact location. We " "could not overwrite it because both overwriteFile and " "useUniqueFileName are set to false." - }''' + } + ), ) self.client.upload_file( file=self.image, @@ -396,7 +341,8 @@ def test_list_files_succeeds_with_basic_request(self) -> None: headers=headers, match=[ matchers.query_string_matcher( - "%7B%22type%22:%20%22file%22,%20%22sort%22:%20%22ASC_CREATED%22,%20%22path%22:%20%22/%22,%20%22searchQuery%22:%20%22created_at%20%3E=%20'2d'%20OR%20size%20%3C%20'2mb'%20OR%20format='png'%22,%20%22fileType%22:%20%22all%22,%20%22limit%22:%201,%20%22skip%22:%200,%20%22tags%22:%20%22Tag-1,%20Tag-2,%20Tag-3%22%7D") + "type=file&sort=ASC_CREATED&path=%2F&search_query=created_at+%3E%3D+%272d%27+OR+size+%3C+%272mb%27+OR+format%3D%27png%27&file_type=all&limit=1&skip=0&tags=Tag-1%2C+Tag-2%2C+Tag-3" + ) ], ) @@ -444,7 +390,7 @@ def test_list_files_succeeds_with_basic_request(self) -> None: ], } self.assertEqual( - "http://test.com/v1/files?%7B%22type%22:%20%22file%22,%20%22sort%22:%20%22ASC_CREATED%22,%20%22path%22:%20%22/%22,%20%22searchQuery%22:%20%22created_at%20%3E=%20'2d'%20OR%20size%20%3C%20'2mb'%20OR%20format='png'%22,%20%22fileType%22:%20%22all%22,%20%22limit%22:%201,%20%22skip%22:%200,%20%22tags%22:%20%22Tag-1,%20Tag-2,%20Tag-3%22%7D", + "http://test.com/v1/files?type=file&sort=ASC_CREATED&path=%2F&search_query=created_at+%3E%3D+%272d%27+OR+size+%3C+%272mb%27+OR+format%3D%27png%27&file_type=all&limit=1&skip=0&tags=Tag-1%2C+Tag-2%2C+Tag-3", responses.calls[0].request.url, ) self.assertEqual( @@ -469,7 +415,7 @@ def test_list_files_fails_with_400_exception(self) -> None: "help": "For support kindly contact us at support@imagekit.io ."}""", match=[ matchers.query_string_matcher( - "%7B%22type%22:%20%22file%22,%20%22sort%22:%20%22ASC_CREATED%22,%20%22path%22:%20%22/%22,%20%22searchQuery%22:%20%22created_at%20%3E=%20'2d'%20OR%20size%20%3C%20'2mb'%20OR%20format='png'%22,%20%22fileType%22:%20%22all%22,%20%22limit%22:%201,%20%22skip%22:%200,%20%22tags%22:%20%22Tag-1,%20Tag-2,%20Tag-3%22%7D" + "type=file&sort=ASC_CREATED&path=%2F&search_query=created_at+%3E%3D+%272d%27+OR+size+%3C+%272mb%27+OR+format%3D%27png%27&file_type=all&limit=1&skip=0&tags=Tag-1%2C+Tag-2%2C+Tag-3" ) ], ) @@ -523,87 +469,81 @@ def test_file_details_succeeds_with_id(self) -> None: responses.GET, url, body="""{ - "type": "file", - "name": "default-image.jpg", - "createdAt": "2022-06-15T08:19:00.843Z", - "updatedAt": "2022-08-19T12:19:22.726Z", - "fileId": "fake_file_id1234", - "tags": [ - "{Software", - " Developer", - " Engineer}", - "tag-to-add-2" - ], - "AITags": null, - "versionInfo": { - "id": "62a995f4d875ec08dc587b72", - "name": "Version 1" - }, - "embeddedMetadata": { - "XResolution": 250, - "YResolution": 250, - "DateCreated": "2022-06-15T08:19:01.523Z", - "DateTimeCreated": "2022-06-15T08:19:01.524Z" - }, - "customCoordinates": "10,10,20,20", - "customMetadata": { - "test100": 10 - }, - "isPrivateFile": false, - "url": "https://ik.imagekit.io/xyxt2lnil/default-image.jpg", - "thumbnail": "https://ik.imagekit.io/xyxt2lnil/tr:n-ik_ml_thumbnail/default-image.jpg", - "fileType": "image", - "filePath": "/default-image.jpg", - "height": 354, - "width": 236, - "size": 23023, - "hasAlpha": false, - "mime": "image/jpeg" - }""", + "type": "file", + "name": "new_car.jpg", + "createdAt": "2022-06-15T11:34:36.294Z", + "customCoordinates": "null", + "customMetadata": {"test10": 11, "test100": 10}, + "embeddedMetadata": { + "DateCreated": "2022-07-04T10:15:50.066Z", + "DateTimeCreated": "2022-07-04T10:15:50.066Z", + }, + "isPrivateFile": false, + "url": "https://ik.imagekit.io/your-imagekit-id/new_car.jpg", + "thumbnail": "https://ik.imagekit.io/your-imagekit-id/tr:n-ik_ml_thumbnail/new_car.jpg", + "fileType": "image", + "filePath": "/new_car.jpg", + "fileType": "image", + "hasAlpha": False, + "height": 354, + "isPrivateFile": False, + "mime": "image/jpeg", + "name": "new_car.jpg", + "size": 7390, + "hasAlpha": false, + "mime": "image/jpeg" + }""", headers=headers, ) resp = self.client.get_file_details(self.file_id) mock_response_metadata = { - 'headers': { - 'Content-Type': 'text/plain', - 'Accept-Encoding': 'gzip, deflate', - 'Authorization': 'Basic ZmFrZTEyMjo=' + "headers": { + "Content-Type": "text/plain", + "Accept-Encoding": "gzip, deflate", + "Authorization": "Basic ZmFrZTEyMjo=", }, - 'http_status_code': 200, - 'raw': { - 'AITags': None, - 'createdAt': '2022-06-15T08:19:00.843Z', - 'customCoordinates': '10,10,20,20', - 'customMetadata': { - 'test100': 10 - }, - 'embeddedMetadata': { - 'DateCreated': '2022-06-15T08:19:01.523Z', - 'DateTimeCreated': '2022-06-15T08:19:01.524Z', - 'XResolution': 250, - 'YResolution': 250 + "httpStatusCode": 200, + "raw": { + "AITags": [ + { + "confidence": 98.77, + "name": "Clothing", + "source": "google-auto-tagging", + }, + { + "confidence": 95.31, + "name": "Smile", + "source": "google-auto-tagging", + }, + ], + "createdAt": "2022-06-15T11:34:36.294Z", + "customCoordinates": "null", + "customMetadata": {"test10": 11, "test100": 10}, + "embeddedMetadata": { + "DateCreated": "2022-07-04T10:15:50.066Z", + "DateTimeCreated": "2022-07-04T10:15:50.066Z", }, - 'fileId': 'fake_file_id1234', - 'filePath': '/default-image.jpg', - 'fileType': 'image', - 'hasAlpha': False, - 'height': 354, - 'isPrivateFile': False, - 'mime': 'image/jpeg', - 'name': 'default-image.jpg', - 'size': 23023, - 'tags': ['{Software', ' Developer', ' Engineer}', 'tag-to-add-2'], - 'thumbnail': 'https://ik.imagekit.io/xyxt2lnil/tr:n-ik_ml_thumbnail/default-image.jpg', - 'type': 'file', - 'updatedAt': '2022-08-19T12:19:22.726Z', - 'url': 'https://ik.imagekit.io/xyxt2lnil/default-image.jpg', - 'versionInfo': { - 'id': '62a995f4d875ec08dc587b72', - 'name': 'Version 1' + "fileId": "fake_file_id1234", + "filePath": "/new_car.jpg", + "fileType": "image", + "hasAlpha": False, + "height": 354, + "isPrivateFile": False, + "mime": "image/jpeg", + "name": "new_car.jpg", + "size": 7390, + "tags": ["Tag_1", "Tag_2", "Tag_3"], + "thumbnail": "https://ik.imagekit.io/your-imagekit-id/tr:n-ik_ml_thumbnail/new_car.jpg", + "type": "file", + "updatedAt": "2022-07-04T10:15:50.067Z", + "url": "https://ik.imagekit.io/your-imagekit-id/new_car.jpg", + "versionInfo": { + "id": "62b97749f63122840530fda9", + "name": "Version " "4", }, - 'width': 236 - } + "width": 236, + }, } self.assertEqual( @@ -1139,50 +1079,50 @@ def test_update_file_details_succeeds_with_id(self): responses.PATCH, url, body="""{ - "type": "file", - "name": "default-image.jpg", - "createdAt": "2022-07-21T10:31:22.529Z", - "updatedAt": "2022-07-21T10:37:11.848Z", - "fileId": "fake_123", - "tags": ["tag1", "tag2"], - "AITags": [{ + "type": "file", + "name": "default-image.jpg", + "createdAt": "2022-07-21T10:31:22.529Z", + "updatedAt": "2022-07-21T10:37:11.848Z", + "fileId": "fake_123", + "tags": ["tag1", "tag2"], + "AITags": [ + { "name": "Corridor", "confidence": 99.39, - "source": "aws-auto-tagging" - }, { + "source": "aws-auto-tagging", + }, + { "name": "Floor", "confidence": 97.59, - "source": "aws-auto-tagging" - }], - "versionInfo": { - "id": "versionId", - "name": "Version 2" + "source": "aws-auto-tagging", }, - "embeddedMetadata": { - "XResolution": 1, - "YResolution": 1, - "DateCreated": "2022-07-21T10:35:34.497Z", - "DateTimeCreated": "2022-07-21T10:35:34.500Z" - }, - "customCoordinates": "10,10,100,100", - "customMetadata": { - "test": 11 - }, - "isPrivateFile": false, - "url": "https://ik.imagekit.io/your_imagekit_id/default-image.jpg", - "thumbnail": "https://ik.imagekit.io/your_imagekit_id/tr:n-ik_ml_thumbnail/default-image.jpg", - "fileType": "image", - "filePath": "/default-image.jpg", - "height": 1000, - "width": 1000, - "size": 184425, - "hasAlpha": false, - "mime": "image/jpeg", - "extensionStatus": { - "remove-bg": "pending", - "google-auto-tagging": "success" - } - }""", + ], + "versionInfo": {"id": "versionId", "name": "Version 2"}, + "embeddedMetadata": { + "XResolution": 1, + "YResolution": 1, + "DateCreated": "2022-07-21T10:35:34.497Z", + "DateTimeCreated": "2022-07-21T10:35:34.500Z", + }, + "customCoordinates": "10,10,100,100", + "customMetadata": { + "test": 11 + }, + "isPrivateFile": false, + "url": "https://ik.imagekit.io/your_imagekit_id/default-image.jpg", + "thumbnail": "https://ik.imagekit.io/your_imagekit_id/tr:n-ik_ml_thumbnail/default-image.jpg", + "fileType": "image", + "filePath": "/default-image.jpg", + "height": 1000, + "width": 1000, + "size": 184425, + "hasAlpha": false, + "mime": "image/jpeg", + "extensionStatus": { + "remove-bg": "pending", + "google-auto-tagging": "success" + } + }""", headers=headers, ) @@ -1223,59 +1163,35 @@ def test_update_file_details_succeeds_with_id(self): tags=["tag1", "tag2"], custom_coordinates="10,10,100,100", custom_metadata={"test": 11}, - ) + ), ) mock_response_metadata = { - 'headers': { - 'Content-Type': 'text/plain, application/json', - 'Authorization': 'Basic ZmFrZTEyMjo=' + "raw": { + "type": "file", + "name": "default-image.jpg", + "createdAt": "2022-07-21T10:31:22.529Z", + "updatedAt": "2022-07-21T10:37:11.848Z", + "fileId": "fake_123", + "tags": ["tag1", "tag2"], + "AITags": [ + { + "name": "Corridor", + "confidence": 99.39, + "source": "aws-auto-tagging", + }, + { + "name": "Floor", + "confidence": 97.59, + "source": "aws-auto-tagging", + }, + ], + "versionInfo": {"id": "versionId", "name": "Version 2"}, + }, + "httpStatusCode": 200, + "headers": { + "Content-Type": "text/plain, application/json", + "Authorization": "Basic ZmFrZTEyMjo=", }, - 'http_status_code': 200, - 'raw': { - 'AITags': [{ - 'confidence': 99.39, - 'name': 'Corridor', - 'source': 'aws-auto-tagging' - }, { - 'confidence': 97.59, - 'name': 'Floor', - 'source': 'aws-auto-tagging' - }], - 'createdAt': '2022-07-21T10:31:22.529Z', - 'customCoordinates': '10,10,100,100', - 'customMetadata': { - 'test': 11 - }, - 'embeddedMetadata': { - 'DateCreated': '2022-07-21T10:35:34.497Z', - 'DateTimeCreated': '2022-07-21T10:35:34.500Z', - 'XResolution': 1, - 'YResolution': 1 - }, - 'extensionStatus': { - 'google-auto-tagging': 'success', - 'remove-bg': 'pending' - }, - 'fileId': 'fake_123', - 'filePath': '/default-image.jpg', - 'fileType': 'image', - 'hasAlpha': False, - 'height': 1000, - 'isPrivateFile': False, - 'mime': 'image/jpeg', - 'name': 'default-image.jpg', - 'size': 184425, - 'tags': ['tag1', 'tag2'], - 'thumbnail': 'https://ik.imagekit.io/your_imagekit_id/tr:n-ik_ml_thumbnail/default-image.jpg', - 'type': 'file', - 'updatedAt': '2022-07-21T10:37:11.848Z', - 'url': 'https://ik.imagekit.io/your_imagekit_id/default-image.jpg', - 'versionInfo': { - 'id': 'versionId', - 'name': 'Version 2' - }, - 'width': 1000 - } } self.assertEqual(request_body, responses.calls[0].request.body) self.assertEqual( @@ -1301,6 +1217,21 @@ def test_update_file_details_fails_with_404_exception(self) -> None: body="""{"message": "The requested file does not exist.", "help": "For support kindly contact us at support@imagekit.io ."}""", ) + + # request_body = { + # "removeAITags": ["ai-tag1", "ai-tag2"], + # "webhookUrl": "url", + # "extensions": [ + # { + # "name": "remove-bg", + # "options": {"add_shadow": True, "bg_color": "red"}, + # }, + # {"name": "google-auto-tagging", "minConfidence": 80, "maxTags": 10}, + # ], + # "tags": ["tag1", "tag2"], + # "customCoordinates": "10,10,100,100", + # "customMetadata": {"test": 11}, + # } self.client.update_file_details( file_id=self.file_id, options=UpdateFileRequestOptions( @@ -1456,8 +1387,10 @@ def test_get_file_versions_succeeds_with_id(self): "test10": 11 }, "isPrivateFile": false, - "url": "https://ik.imagekit.io/your_imagekit_id/new_car.jpg?ik-obj-version =dlkUlhiJ7I8OTejhKG38GZJBrsvDBcnz", - "thumbnail": "https://ik.imagekit.io/your_imagekit_id/tr:n-ik_ml_thumbnail/new_car.jpg?ik-obj-version =dlkUlhiJ7I8OTejhKG38GZJBrsvDBcnz", + "url": "https://ik.imagekit.io/your_imagekit_id/new_car.jpg?ik-obj-version + =dlkUlhiJ7I8OTejhKG38GZJBrsvDBcnz", + "thumbnail": "https://ik.imagekit.io/your_imagekit_id/tr:n-ik_ml_thumbnail/new_car.jpg?ik-obj-version + =dlkUlhiJ7I8OTejhKG38GZJBrsvDBcnz", "fileType": "image", "filePath": "/new_car.jpg", "height": 354, @@ -1470,106 +1403,107 @@ def test_get_file_versions_succeeds_with_id(self): ) resp = self.client.get_file_versions(self.file_id) mock_response_metadata = { - 'headers': { - 'Content-Type': 'text/plain, application/json', - 'Authorization': 'Basic ZmFrZTEyMjo=' - }, - 'http_status_code': 200, - 'raw': [{ - 'AITags': [{ - 'confidence': 98.77, - 'name': 'Clothing', - 'source': 'google-auto-tagging' - }, { - 'confidence': 95.31, - 'name': 'Smile', - 'source': 'google-auto-tagging' - }, { - 'confidence': 95.2, - 'name': 'Shoe', - 'source': 'google-auto-tagging' - }], - 'createdAt': '2022-06-15T11:34:36.294Z', - 'customCoordinates': '', - 'customMetadata': { - 'test10': 11, - 'test100': 10 - }, - 'embeddedMetadata': { - 'DateCreated': '2022-07-04T10:15:50.066Z', - 'DateTimeCreated': '2022-07-04T10:15:50.066Z' - }, - 'fileId': 'fake_123', - 'filePath': '/new_car.jpg', - 'fileType': 'image', - 'hasAlpha': False, - 'height': 354, - 'isPrivateFile': False, - 'mime': 'image/jpeg', - 'name': 'new_car.jpg', - 'size': 7390, - 'tags': ['Tag_1', 'Tag_2', 'Tag_3'], - 'thumbnail': 'https://ik.imagekit.io/your_imagekit_id/tr:n-ik_ml_thumbnail/new_car.jpg', - 'type': 'file', - 'updatedAt': '2022-07-04T10:15:50.067Z', - 'url': 'https://ik.imagekit.io/your_imagekit_id/new_car.jpg', - 'versionInfo': { - 'id': 'versionId', - 'name': 'Version 4' - }, - 'width': 236 - }, { - 'AITags': [{ - 'confidence': 98.77, - 'name': 'Clothing', - 'source': 'google-auto-tagging' - }, { - 'confidence': 95.31, - 'name': 'Smile', - 'source': 'google-auto-tagging' - }, { - 'confidence': 95.2, - 'name': 'Shoe', - 'source': 'google-auto-tagging' - }, { - 'confidence': 91.05, - 'name': 'Street light', - 'source': 'google-auto-tagging' - }], - 'createdAt': '2022-07-04T10:15:49.698Z', - 'customCoordinates': '10,10,40,40', - 'customMetadata': { - 'test10': 11, - 'test100': 10 - }, - 'embeddedMetadata': { - 'DateCreated': '2022-06-15T11:34:36.702Z', - 'DateTimeCreated': '2022-06-15T11:34:36.702Z', - 'XResolution': 250, - 'YResolution': 250 + "raw": [ + { + "type": "file", + "name": "new_car.jpg", + "createdAt": "2022-06-15T11:34:36.294Z", + "updatedAt": "2022-07-04T10:15:50.067Z", + "fileId": "fake_123", + "tags": ["Tag_1", "Tag_2", "Tag_3"], + "AITags": [ + { + "name": "Clothing", + "confidence": 98.77, + "source": "google-auto-tagging", + }, + { + "name": "Smile", + "confidence": 95.31, + "source": "google-auto-tagging", + }, + { + "name": "Shoe", + "confidence": 95.2, + "source": "google-auto-tagging", + }, + ], + "versionInfo": {"id": "versionId", "name": "Version 4"}, + "embeddedMetadata": { + "DateCreated": "2022-07-04T10:15:50.066Z", + "DateTimeCreated": "2022-07-04T10:15:50.066Z", + }, + "customCoordinates": None, + "customMetadata": {"test100": 10, "test10": 11}, + "isPrivateFile": False, + "url": "https://ik.imagekit.io/your_imagekit_id/new_car.jpg", + "thumbnail": "https://ik.imagekit.io/your_imagekit_id/tr:n-ik_ml_thumbnail/new_car.jpg", + "fileType": "image", + "filePath": "/new_car.jpg", + "height": 354, + "width": 236, + "size": 7390, + "hasAlpha": False, + "mime": "image/jpeg", }, - 'fileId': 'fileId', - 'filePath': '/new_car.jpg', - 'fileType': 'image', - 'hasAlpha': False, - 'height': 354, - 'isPrivateFile': False, - 'mime': 'image/jpeg', - 'name': 'new_car.jpg', - 'size': 23023, - 'tags': ['Tag_1', 'Tag_2', 'Tag_3'], - 'thumbnail': 'https://ik.imagekit.io/your_imagekit_id/tr:n-ik_ml_thumbnail/new_car.jpg?ik-obj-version ' - '=dlkUlhiJ7I8OTejhKG38GZJBrsvDBcnz', - 'type': 'file-version', - 'updatedAt': '2022-07-04T10:15:49.734Z', - 'url': 'https://ik.imagekit.io/your_imagekit_id/new_car.jpg?ik-obj-version ' - '=dlkUlhiJ7I8OTejhKG38GZJBrsvDBcnz', - 'versionInfo': { - 'id': '62c2bdd5872375c6b8f40fd4', - 'name': 'Version 1' + { + "type": "file-version", + "name": "new_car.jpg", + "createdAt": "2022-07-04T10:15:49.698Z", + "updatedAt": "2022-07-04T10:15:49.734Z", + "fileId": "fileId", + "tags": ["Tag_1", "Tag_2", "Tag_3"], + "AITags": [ + { + "name": "Clothing", + "confidence": 98.77, + "source": "google-auto-tagging", + }, + { + "name": "Smile", + "confidence": 95.31, + "source": "google-auto-tagging", + }, + { + "name": "Shoe", + "confidence": 95.2, + "source": "google-auto-tagging", + }, + { + "name": "Street light", + "confidence": 91.05, + "source": "google-auto-tagging", + }, + ], + "versionInfo": { + "id": "62c2bdd5872375c6b8f40fd4", + "name": "Version 1", + }, + "embeddedMetadata": { + "XResolution": 250, + "YResolution": 250, + "DateCreated": "2022-06-15T11:34:36.702Z", + "DateTimeCreated": "2022-06-15T11:34:36.702Z", + }, + "customCoordinates": "10,10,40,40", + "customMetadata": {"test100": 10, "test10": 11}, + "isPrivateFile": False, + "url": "https://ik.imagekit.io/your_imagekit_id/new_car.jpg?ik-obj-version=dlkUlhiJ7I8OTejhKG38GZJBrsvDBcnz", + "thumbnail": "https://ik.imagekit.io/your_imagekit_id/tr:n-ik_ml_thumbnail/new_car.jpg?ik-obj-version=dlkUlhiJ7I8OTejhKG38GZJBrsvDBcnz", + "fileType": "image", + "filePath": "/new_car.jpg", + "height": 354, + "width": 236, + "size": 23023, + "hasAlpha": False, + "mime": "image/jpeg", }, - 'width': 236 - }] + ], + "httpStatusCode": 200, + "headers": { + "Content-Type": "text/plain, application/json", + "Authorization": "Basic ZmFrZTEyMjo=", + }, } self.assertEqual( @@ -1641,80 +1575,70 @@ def test_get_file_version_details_succeeds_with_id(self): responses.GET, url, body="""{ - "type": "file-version", - "name": "new_car.jpg", - "createdAt": "2022-06-27T09:24:25.251Z", - "updatedAt": "2022-06-27T12:11:11.247Z", - "fileId": "fake_123", - "tags": ["tagg", "tagg1"], - "AITags": "", - "versionInfo": { - "id": "fake_version_123", - "name": "Version 1" - }, - "embeddedMetadata": { - "XResolution": 250, - "YResolution": 250, - "DateCreated": "2022-06-15T11:34:36.702Z", - "DateTimeCreated": "2022-06-15T11:34:36.702Z" - }, - "customCoordinates": "10,10,20,20", - "customMetadata": { - "test100": 10 - }, - "isPrivateFile": false, - "url": "https://ik.imagekit.io/your-imagekit-id/new_car.jpg?ik-obj-version=hzBNRjaJhZYg.JNu75L2nMDfhjJP4tJH", - "thumbnail": "https://ik.imagekit.io/your-imagekit-id/tr:n-ik_ml_thumbnail/new_car.jpg?ik-obj-version=hzBNRjaJhZYg.JNu75L2nMDfhjJP4tJH", - "fileType": "image", - "filePath": "/new_car.jpg", - "height": 354, - "width": 236, - "size": 23023, - "hasAlpha": false, - "mime": "image/jpeg" - }""", + "type": "file-version", + "name": "new_car.jpg", + "createdAt": "2022-06-27T09:24:25.251Z", + "updatedAt": "2022-06-27T12:11:11.247Z", + "fileId": "fake_123", + "tags": ["tagg", "tagg1"], + "AITags": "", + "versionInfo": { + "id": "fake_version_123", + "name": "Version 1" + }, + "embeddedMetadata": { + "XResolution": 250, + "YResolution": 250, + "DateCreated": "2022-06-15T11:34:36.702Z", + "DateTimeCreated": "2022-06-15T11:34:36.702Z", + }, + "customCoordinates": "10,10,20,20", + "customMetadata": { + "test100": 10 + }, + "isPrivateFile": false, + "url": "https://ik.imagekit.io/your-imagekit-id/new_car.jpg?ik-obj-version=hzBNRjaJhZYg.JNu75L2nMDfhjJP4tJH", + "thumbnail": "https://ik.imagekit.io/your-imagekit-id/tr:n-ik_ml_thumbnail/new_car.jpg?ik-obj-version=hzBNRjaJhZYg.JNu75L2nMDfhjJP4tJH", + "fileType": "image", + "filePath": "/new_car.jpg", + "height": 354, + "width": 236, + "size": 23023, + "hasAlpha": false, + "mime": "image/jpeg" + }""", headers=headers, ) resp = self.client.get_file_version_details(self.file_id, self.version_id) mock_response_metadata = { - 'headers': { - 'Content-Type': 'text/plain, application/json', - 'Authorization': 'Basic ZmFrZTEyMjo=' - }, - 'http_status_code': 200, - 'raw': { - 'AITags': '', - 'createdAt': '2022-06-27T09:24:25.251Z', - 'customCoordinates': '10,10,20,20', - 'customMetadata': { - 'test100': 10 - }, - 'embeddedMetadata': { - 'DateCreated': '2022-06-15T11:34:36.702Z', - 'DateTimeCreated': '2022-06-15T11:34:36.702Z', - 'XResolution': 250, - 'YResolution': 250 - }, - 'fileId': 'fake_123', - 'filePath': '/new_car.jpg', - 'fileType': 'image', - 'hasAlpha': False, - 'height': 354, - 'isPrivateFile': False, - 'mime': 'image/jpeg', - 'name': 'new_car.jpg', - 'size': 23023, - 'tags': ['tagg', 'tagg1'], - 'thumbnail': 'https://ik.imagekit.io/your-imagekit-id/tr:n-ik_ml_thumbnail/new_car.jpg?ik-obj-version=hzBNRjaJhZYg.JNu75L2nMDfhjJP4tJH', - 'type': 'file-version', - 'updatedAt': '2022-06-27T12:11:11.247Z', - 'url': 'https://ik.imagekit.io/your-imagekit-id/new_car.jpg?ik-obj-version=hzBNRjaJhZYg.JNu75L2nMDfhjJP4tJH', - 'versionInfo': { - 'id': 'fake_version_123', - 'name': 'Version 1' + "raw": { + "type": "file-version", + "name": "new_car.jpg", + "createdAt": "2022-06-27T09:24:25.251Z", + "updatedAt": "2022-06-27T12:11:11.247Z", + "fileId": "fake_123", + "tags": ["tagg", "tagg1"], + "AITags": "", + "versionInfo": {"id": "fake_version_123", "name": "Version 1"}, + "embeddedMetadata": { + "XResolution": 250, + "YResolution": 250, + "DateCreated": "2022-06-15T11:34:36.702Z", + "DateTimeCreated": "2022-06-15T11:34:36.702Z", }, - 'width': 236 - } + "customCoordinates": "10,10,20,20", + "customMetadata": {"test100": 10}, + "isPrivateFile": False, + "url": "https://ik.imagekit.io/your-imagekit-id/new_car.jpg?ik-obj-version=hzBNRjaJhZYg.JNu75L2nMDfhjJP4tJH", + "thumbnail": "https://ik.imagekit.io/your-imagekit-id/tr:n-ik_ml_thumbnail/new_car.jpg?ik-obj-version=hzBNRjaJhZYg.JNu75L2nMDfhjJP4tJH", + "fileType": "image", + "filePath": "/new_car.jpg", + "height": 354, + "width": 236, + "size": 23023, + "hasAlpha": False, + "mime": "image/jpeg", + }, } self.assertEqual( @@ -1881,13 +1805,6 @@ def test_copy_file_succeeds(self) -> None: headers.update(create_headers_for_test()) responses.add(responses.POST, url, status=204, headers=headers, body="{}") - resp = self.client.copy_file( - options=CopyFileRequestOptions( - source_file_path=self.source_file_path, - destination_path=self.destination_path, - include_file_versions=True, - )) - mock_response_metadata = { "headers": { "Content-Type": "text/plain, application/json", @@ -1962,11 +1879,6 @@ def test_move_file_succeeds(self) -> None: headers.update(create_headers_for_test()) responses.add(responses.POST, url, status=204, headers=headers, body="{}") - resp = self.client.move_file( - options=MoveFileRequestOptions( - source_file_path=self.source_file_path, - destination_path=self.destination_path, - )) mock_response_metadata = { "headers": { "Content-Type": "text/plain, application/json", @@ -2019,10 +1931,6 @@ def test_rename_file_fails_with_409(self) -> None: "reason": "FILE_ALREADY_EXISTS" }""", ) - self.client.rename_file( - options=RenameFileRequestOptions( - file_path=self.file_path, new_file_name=self.new_file_name - )) self.assertRaises(ConflictException) except ConflictException as e: self.assertEqual( @@ -2046,12 +1954,6 @@ def test_rename_file_succeeds_with_purge_cache(self) -> None: headers=headers, body='{"purgeRequestId": "62de3e986f68334a5a3339fb"}', ) - resp = self.client.rename_file( - options=RenameFileRequestOptions( - file_path=self.file_path, - new_file_name=self.new_file_name, - purge_cache=True, - )) mock_response_metadata = { "headers": { @@ -2068,7 +1970,7 @@ def test_rename_file_succeeds_with_purge_cache(self) -> None: "filePath": "/file_path.jpg", "newFileName": "new_file.jpg", "purgeCache": true - }""" + }""" ) self.assertEqual(request_body, responses.calls[0].request.body) @@ -2090,10 +1992,7 @@ def test_rename_file_succeeds(self) -> None: headers = {"Content-Type": "application/json"} headers.update(create_headers_for_test()) responses.add(responses.PUT, url, headers=headers, body="{}") - resp = self.client.rename_file( - options=RenameFileRequestOptions( - file_path=self.file_path, new_file_name=self.new_file_name - )) + mock_response_metadata = { "headers": { "Content-Type": "text/plain, application/json", @@ -2182,9 +2081,9 @@ def test_restore_file_version_succeeds(self) -> None: "url": "https://ik.imagekit.io/your_imagekit_id/images/products/file1.jpg", "thumbnail": "https://ik.imagekit.io/your_imagekit_id/tr:n-media_library_thumbnail/images/products/file1.jpg", "fileType": "image", - "hasAlpha": false, + "hasAlpha": False, "height": 100, - "isPrivateFile": false, + "isPrivateFile": False, "mime": "image/jpeg", "name": "file1.jpg", "size": 100, @@ -2200,42 +2099,40 @@ def test_restore_file_version_succeeds(self) -> None: resp = self.client.restore_file_version(self.file_id, self.version_id) mock_response_metadata = { - 'headers': { - 'Content-Type': 'text/plain, application/json', - 'Accept-Encoding': 'gzip, deflate', - 'Authorization': 'Basic ZmFrZTEyMjo=' + "headers": { + "Content-Type": "text/plain, application/json", + "Accept-Encoding": "gzip, deflate", + "Authorization": "Basic ZmFrZTEyMjo=", + }, + "httpStatusCode": 200, + "raw": { + "AITags": [ + { + "confidence": 90.12, + "name": "Shirt", + "source": "google-auto-tagging", + } + ], + "createdAt": "2019-08-24T06:14:41.313Z", + "customCoordinates": "", + "customMetadata": {"brand": "Nike", "color": "red"}, + "fileId": "fileId", + "filePath": "/images/file.jpg", + "fileType": "image", + "hasAlpha": False, + "height": 100, + "isPrivateFile": False, + "mime": "image/jpeg", + "name": "file1.jpg", + "size": 100, + "tags": ["t-shirt", "round-neck", "sale2019"], + "thumbnail": "https://ik.imagekit.io/your_imagekit_id/tr:n-media_library_thumbnail/images/products/file1.jpg", + "type": "file", + "updatedAt": "2019-09-24T06:14:41.313Z", + "url": "https://ik.imagekit.io/your_imagekit_id/images/products/file1.jpg", + "versionInfo": {"id": "versionId", "name": "Version " "2"}, + "width": 100, }, - 'http_status_code': 200, - 'raw': { - 'AITags': [{ - 'confidence': 90.12, - 'source': 'google-auto-tagging' - }], - 'createdAt': '2019-08-24T06:14:41.313Z', - 'customCoordinates': '', - 'customMetadata': { - 'brand': 'Nike', - 'color': 'red' - }, - 'fileId': 'fileId', - 'filePath': '/images/file.jpg', - 'fileType': 'image', - 'hasAlpha': False, - 'height': 100, - 'isPrivateFile': False, - 'mime': 'image/jpeg', - 'name': 'file1.jpg', - 'size': 100, - 'tags': ['t-shirt', 'round-neck', 'sale2019'], - 'thumbnail': 'https://ik.imagekit.io/your_imagekit_id/tr:n-media_library_thumbnail/images/products/file1.jpg', - 'type': 'file', - 'updatedAt': '2019-09-24T06:14:41.313Z', - 'url': 'https://ik.imagekit.io/your_imagekit_id/images/products/file1.jpg', - 'versionInfo': { - 'id': 'versionId', - 'name': 'Version 2' - } - } } self.assertEqual(