Skip to content

Commit 97fa94d

Browse files
authored
Merge pull request #46 from aman-squareboat/bugfixes/3.0.1
Fix issue #35 #37 #41 #44
2 parents 154806b + e69d45f commit 97fa94d

File tree

11 files changed

+298
-14
lines changed

11 files changed

+298
-14
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on: [push, pull_request]
44

55
jobs:
66
build:
7-
runs-on: ubuntu-latest
7+
runs-on: ubuntu-20.04
88
strategy:
99
matrix:
1010
python: [3.6, 3.7, 3.8, 3.9, '3.10']

imagekitio/file.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
convert_to_response_metadata_result_object,
6464
)
6565

66+
from io import BufferedReader
6667

6768
class File(object):
6869
def __init__(self, request_obj):
@@ -93,7 +94,9 @@ def upload(
9394
options = self.validate_upload(options.__dict__)
9495
if options is False:
9596
raise ValueError("Invalid upload options")
96-
if isinstance(file, str) or isinstance(file, bytes):
97+
if isinstance(file,BufferedReader):
98+
files.update({"file": (file_name,file,None)})
99+
elif isinstance(file, str) or isinstance(file, bytes):
97100
files.update({"file": (None, file)})
98101
if "overwriteAiTags" in options:
99102
options["overwriteAITags"] = options["overwriteAiTags"]
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
class EmbeddedMetadata:
2-
def __init__(self, x_resolution=None, y_resolution=None, date_created=None, date_timecreated=None):
2+
def __init__(self, x_resolution=None, y_resolution=None, date_created=None, date_time_created=None):
33
self.x_resolution = x_resolution
44
self.y_resolution = y_resolution
55
self.date_created = date_created
6-
self.date_timecreated = date_timecreated
6+
self.date_time_created = date_time_created
7+

imagekitio/models/results/UploadFileResult.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def __init__(
5757
embedded_metadata["x_resolution"],
5858
embedded_metadata["y_resolution"],
5959
embedded_metadata["date_created"],
60-
embedded_metadata["date_timecreated"],
60+
embedded_metadata["date_time_created"],
6161
)
6262
self.extension_status = extension_status
6363
self.file_type = file_type

imagekitio/url.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ def __init__(self, request_obj):
2323

2424
def generate_url(self, options: Dict = None) -> str:
2525
options = camel_dict_to_snake_dict(options)
26+
attachment = options.get("query_parameters",{}).get("ik-attachment")
27+
if attachment:
28+
options["query_parameters"]["ik-attachment"] = str(attachment).lower()
2629
extended_options = self.request.extend_url_options(options)
2730
return self.build_url(extended_options)
2831

@@ -192,8 +195,8 @@ def transformation_to_str(transformation):
192195
value = value.strip("/")
193196
value = value.replace("/", "@@")
194197
if transform_key == "raw":
195-
for i in value.split(","):
196-
parsed_transform_step.append(i)
198+
for j in value.split(","):
199+
parsed_transform_step.append(j)
197200
else:
198201
parsed_transform_step.append(
199202
"{}{}{}".format(

imagekitio/utils/utils.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,11 @@ def throw_other_exception(response: Response):
7676

7777

7878
def convert_to_response_object(resp: Response, response_object):
79-
res_new = loads(dumps(camel_dict_to_snake_dict(resp.json())))
79+
resp_json = resp.json()
80+
embeddedMetadata = resp_json.get("embeddedMetadata")
81+
if embeddedMetadata != None:
82+
resp_json["embeddedMetadata"] = camel_dict_to_snake_dict(embeddedMetadata)
83+
res_new = loads(dumps(camel_dict_to_snake_dict(resp_json)))
8084
u = response_object(**res_new)
8185
u.response_metadata = ResponseMetadata(resp.json(), resp.status_code, resp.headers)
8286
return u

requirements/requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
requests>=2.22.0
2-
requests_toolbelt==0.9.1
2+
requests_toolbelt==0.10.1
3+
urllib3==1.26.15

requirements/test.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ black==19.10b0
33
coverage==4.5.4
44
tox==3.14.2
55
responses==0.17.0
6-
requests_toolbelt==0.9.1
6+
requests_toolbelt==0.10.1
7+
urllib3==1.26.15

tests/test_files_ops.py

Lines changed: 202 additions & 3 deletions
Large diffs are not rendered by default.

tests/test_generate_url.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ def setUp(self) -> None:
1111
public_key="public_key_test",
1212
url_endpoint="https://test-domain.com/test-endpoint",
1313
)
14-
1514
def test_generate_url_with_path(self):
1615
options = {
1716
"path": "/default-image.jpg",
@@ -22,7 +21,32 @@ def test_generate_url_with_path(self):
2221
url,
2322
"https://test-domain.com/test-endpoint/tr:h-300,w-400/default-image.jpg",
2423
)
24+
def test_generate_url_with_path_with_ik_attachment(self):
25+
options = {
26+
"path": "/default-image.jpg",
27+
"transformation": [{"height": "300", "width": "400"}],
28+
"query_parameters": {
29+
"ik-attachment":True
30+
},
31+
}
32+
url = self.client.url(options)
33+
self.assertEqual(
34+
url,
35+
"https://test-domain.com/test-endpoint/tr:h-300,w-400/default-image.jpg?ik-attachment=true",
36+
)
2537

38+
def test_generate_url_With_path_with_transformation_raw(self):
39+
options = {
40+
"path": "/default-image.jpg",
41+
"transformation": [{"raw":"f-auto","height": "300", "width": "400"}],
42+
43+
}
44+
url = self.client.url(options)
45+
self.assertEqual(
46+
url,
47+
"https://test-domain.com/test-endpoint/tr:f-auto,h-300,w-400/default-image.jpg",
48+
)
49+
2650
def test_overriding_url_endpoint_generation_consists_new_url(self):
2751
"""
2852
Overriding urlEndpoint parameter. Passing a urlEndpoint value which is

0 commit comments

Comments
 (0)