Skip to content

Commit fb1797f

Browse files
Added delete and update methods to custom objects test
1 parent 355855d commit fb1797f

File tree

2 files changed

+40
-2
lines changed

2 files changed

+40
-2
lines changed

src/commercetools/testing/abstract.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,16 @@ 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+
)
130+
121131
def save(self, obj):
122132
assert obj["id"]
123133
obj["version"] += 1
@@ -277,6 +287,18 @@ def delete_by_key(self, request, key):
277287
return create_commercetools_response(request, json=obj)
278288
return create_commercetools_response(request, status_code=404)
279289

290+
def delete_by_container_key(self, request, container, key):
291+
obj = self.model.get_by_container_key(container, key)
292+
if obj:
293+
if self._verify_version:
294+
response = self._validate_resource_version(request, obj)
295+
if response is not None:
296+
return response
297+
298+
obj = self.model.delete_by_container_key(key)
299+
return create_commercetools_response(request, json=obj)
300+
return create_commercetools_response(request, status_code=404)
301+
280302
def _expand(self, request: _RequestObjectProxy, raw_obj):
281303
params = utils.parse_request_params(self._schema_query_params, request)
282304
if "expand" not in params:

src/commercetools/testing/custom_objects.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,12 @@ def urls(self):
8181
(
8282
"^(?P<container>[^/]+)/(?P<key>[^/]+)$",
8383
"POST",
84-
self.get_by_container_key,
84+
self.update_by_container_key,
8585
),
8686
(
8787
"^(?P<container>[^/]+)/(?P<key>[^/]+)$",
8888
"DELETE",
89-
self.get_by_container_key,
89+
self.delete_by_container_key,
9090
),
9191
("^(?P<container>[^/]+)$", "GET", self.query_by_container),
9292
]
@@ -106,3 +106,19 @@ def get_by_container_key(self, request, container: str, key: str):
106106
return create_commercetools_response(request, json=item)
107107
else:
108108
return create_commercetools_response(request, status_code=404)
109+
110+
def update_by_container_key(self, request, container: str, key: str):
111+
item = self.model._get_by_container_key(container, key)
112+
return self._update(request, item)
113+
114+
def delete_by_container_key(self, request, container: str, key: str):
115+
item = self.model._get_by_container_key(container, key)
116+
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)
123+
return create_commercetools_response(request, json=obj)
124+
return create_commercetools_response(request, status_code=404)

0 commit comments

Comments
 (0)