Skip to content

Commit 0139d87

Browse files
Add unit test to delete method for custom objects test
1 parent fb1797f commit 0139d87

File tree

3 files changed

+23
-21
lines changed

3 files changed

+23
-21
lines changed

src/commercetools/testing/abstract.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -118,15 +118,10 @@ def delete_by_key(self, key):
118118
if obj["key"] == key:
119119
return self.objects.pop(obj_id)
120120

121-
def delete_by_container_key(self, container, key):
122-
return next(
123-
(
124-
obj
125-
for obj in self.objects.values()
126-
if obj["container"] == container and obj["key"] == key
127-
),
128-
None,
129-
)
121+
def delete_by_container_and_key(self, container, key):
122+
for obj in self.objects.values():
123+
if obj["container"] == container and obj["key"] == key:
124+
return obj
130125

131126
def save(self, obj):
132127
assert obj["id"]
@@ -287,15 +282,15 @@ def delete_by_key(self, request, key):
287282
return create_commercetools_response(request, json=obj)
288283
return create_commercetools_response(request, status_code=404)
289284

290-
def delete_by_container_key(self, request, container, key):
285+
def delete_by_container_and_key(self, request, container, key):
291286
obj = self.model.get_by_container_key(container, key)
292287
if obj:
293288
if self._verify_version:
294289
response = self._validate_resource_version(request, obj)
295290
if response is not None:
296291
return response
297292

298-
obj = self.model.delete_by_container_key(key)
293+
obj = self.model.delete_by_container_and_key(key)
299294
return create_commercetools_response(request, json=obj)
300295
return create_commercetools_response(request, status_code=404)
301296

src/commercetools/testing/custom_objects.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def urls(self):
8686
(
8787
"^(?P<container>[^/]+)/(?P<key>[^/]+)$",
8888
"DELETE",
89-
self.delete_by_container_key,
89+
self.delete_by_container_and_key,
9090
),
9191
("^(?P<container>[^/]+)$", "GET", self.query_by_container),
9292
]
@@ -104,21 +104,17 @@ def get_by_container_key(self, request, container: str, key: str):
104104
item = self.model._get_by_container_key(container, key)
105105
if item:
106106
return create_commercetools_response(request, json=item)
107-
else:
108-
return create_commercetools_response(request, status_code=404)
107+
108+
return create_commercetools_response(request, status_code=404)
109109

110110
def update_by_container_key(self, request, container: str, key: str):
111111
item = self.model._get_by_container_key(container, key)
112112
return self._update(request, item)
113113

114-
def delete_by_container_key(self, request, container: str, key: str):
114+
def delete_by_container_and_key(self, request, container: str, key: str):
115115
item = self.model._get_by_container_key(container, key)
116116
if item:
117-
if self._verify_version:
118-
response = self._validate_resource_version(request, item)
119-
if response is not None:
120-
return response
121-
122-
obj = self.model.delete_by_container_key(container, key)
117+
obj = self.model.delete_by_container_and_key(container, key)
123118
return create_commercetools_response(request, json=obj)
119+
124120
return create_commercetools_response(request, status_code=404)

tests/platform/test_service_custom_objects.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,14 @@ def test_custom_object_query_by_container(old_client):
8787
result = old_client.custom_objects.query_by_container("unittest")
8888
assert len(result.results) == 2
8989
assert result.total == 2
90+
91+
92+
def test_delete_by_container_and_key(old_client):
93+
custom_object = old_client.custom_objects.create_or_update(
94+
models.CustomObjectDraft(container="unittest", key="test-object-1", value=1234)
95+
)
96+
assert custom_object.id
97+
assert custom_object.key == "test-object-1"
98+
assert old_client.custom_objects.delete_by_container_and_key(
99+
container=custom_object.container, key=custom_object.key
100+
)

0 commit comments

Comments
 (0)