Skip to content

Commit 32adb62

Browse files
committed
Fix meta asserter ch=ck on lists
1 parent b9c01bc commit 32adb62

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

src/shipchain_common/test_utils/json_asserter.py

+6
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,10 @@ def _vnd_assert_entity_ref_in_list(response_list, entity_ref, skip_attributes_pr
101101
f'List Attribute key `{attr_key}` missing in {response_single}'
102102
assert response_single['attributes'][attr_key] == attr_value, \
103103
f'List Attribute Value incorrect `{attr_value}` in {response_single}'
104+
if entity_ref.meta:
105+
_vnd_assert_meta(response_single, entity_ref.meta)
104106
break
107+
105108
else:
106109
single_attribute_failed = False
107110

@@ -113,6 +116,9 @@ def _vnd_assert_entity_ref_in_list(response_list, entity_ref, skip_attributes_pr
113116
single_attribute_failed = True
114117
break
115118

119+
if entity_ref.meta:
120+
_vnd_assert_meta(response_single, entity_ref.meta)
121+
116122
if not single_attribute_failed:
117123
found_include = True
118124

tests/test_json_asserter.py

+49
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,10 @@ def vnd_list():
145145
}
146146
]
147147
}
148+
},
149+
'meta': {
150+
'key': 'value',
151+
'other_key': 'other_value',
148152
}
149153
},
150154
{
@@ -1139,3 +1143,48 @@ def test_vnd_invalid_meta_format(self, vnd_single):
11391143
}],
11401144
))
11411145
assert 'Invalid format for meta data <class \'list\'>, must be dict' in str(err.value)
1146+
1147+
def test_vnd_meta_list(self, vnd_list, entity_ref_1):
1148+
entity_ref_1.meta = {
1149+
'key': 'value',
1150+
'other_key': 'other_value'
1151+
}
1152+
response = self.build_response(vnd_list)
1153+
AssertionHelper.HTTP_200(response, entity_refs=entity_ref_1, is_list=True)
1154+
1155+
def test_vnd_list_meta_mismatch(self, vnd_list, entity_ref_1):
1156+
response = self.build_response(vnd_list)
1157+
entity_ref_1.meta = {
1158+
'key': 'different value'
1159+
}
1160+
with pytest.raises(AssertionError) as err:
1161+
AssertionHelper.HTTP_200(response, entity_refs=entity_ref_1, is_list=True)
1162+
assert f'Meta field `key` had value `value` not `different value` as expected.' in str(err.value)
1163+
1164+
def test_vnd_list_meta_invalid_key(self, vnd_list, entity_ref_1):
1165+
entity_ref_1.meta = {
1166+
'invalid_key': 'value'
1167+
}
1168+
response = self.build_response(vnd_list)
1169+
with pytest.raises(AssertionError) as err:
1170+
AssertionHelper.HTTP_200(response, entity_refs=entity_ref_1, is_list=True)
1171+
assert f'Meta field `invalid_key` not found' in str(err.value)
1172+
1173+
def test_vnd_list_no_meta(self, vnd_list, entity_ref_3):
1174+
entity_ref_3.meta = {
1175+
'key': 'value',
1176+
'other_key': 'other_value'
1177+
}
1178+
response = self.build_response(vnd_list)
1179+
with pytest.raises(AssertionError) as err:
1180+
AssertionHelper.HTTP_200(response, entity_refs=entity_ref_3, is_list=True)
1181+
assert 'Meta missing' in str(err.value)
1182+
1183+
def test_vnd_list_invalid_meta_format(self, vnd_list, entity_ref_1):
1184+
entity_ref_1.meta = [{
1185+
'invalid_key': 'value'
1186+
}]
1187+
response = self.build_response(vnd_list)
1188+
with pytest.raises(AssertionError) as err:
1189+
AssertionHelper.HTTP_200(response, entity_refs=entity_ref_1, is_list=True)
1190+
assert 'Invalid format for meta data <class \'list\'>, must be dict' in str(err.value)

0 commit comments

Comments
 (0)