Skip to content

Commit 82988fd

Browse files
authored
Add None case to datetime and list updaters (#124)
1 parent 421dfd1 commit 82988fd

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

src/commercetools/testing/utils.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,13 @@ def update_datetime_attribute(dst: str, src: str):
118118
def updater(self, obj, action):
119119
value = getattr(action, src)
120120

121-
if not isinstance(value, datetime):
122-
raise TypeError(f"Unsupported datetime object type: f{type(value)}")
121+
# value should be either None or datetime
122+
if isinstance(value, datetime):
123+
value = value.isoformat()
123124

124-
if obj.get(dst) != value.isoformat():
125+
if obj.get(dst) != value:
125126
new = copy.deepcopy(obj)
126-
new[dst] = value.isoformat()
127+
new[dst] = value
127128
return new
128129
return obj
129130

@@ -134,13 +135,13 @@ def update_nested_object_attribute(dst: str, src: str):
134135
def updater(self, obj, action):
135136
values = getattr(action, src)
136137

137-
if not isinstance(values, list):
138-
raise TypeError(f"Unsupported nested object type: f{type(values)}")
138+
# values should be either None or a list
139+
if isinstance(values, list):
140+
values = [item.serialize() for item in values]
139141

140-
items = [item.serialize() for item in values]
141-
if items != obj.get(dst):
142+
if values != obj.get(dst):
142143
new = copy.deepcopy(obj)
143-
new[dst] = items
144+
new[dst] = values
144145
return new
145146

146147
return obj

0 commit comments

Comments
 (0)