@@ -105,6 +105,10 @@ def vnd_single():
105
105
}
106
106
]
107
107
}
108
+ },
109
+ 'meta' : {
110
+ 'key' : 'value' ,
111
+ 'other_key' : 'other_value' ,
108
112
}
109
113
},
110
114
'included' : [
@@ -141,6 +145,10 @@ def vnd_list():
141
145
}
142
146
]
143
147
}
148
+ },
149
+ 'meta' : {
150
+ 'key' : 'value' ,
151
+ 'other_key' : 'other_value' ,
144
152
}
145
153
},
146
154
{
@@ -1080,3 +1088,103 @@ def test_plain_json_single_count(self, vnd_single):
1080
1088
with pytest .raises (AssertionError ) as err :
1081
1089
AssertionHelper .HTTP_200 (response , count = 1 )
1082
1090
assert f'Count is only checked when response is list' in str (err .value )
1091
+
1092
+ def test_vnd_meta (self , vnd_single ):
1093
+ response = self .build_response (vnd_single )
1094
+ AssertionHelper .HTTP_200 (response , entity_refs = AssertionHelper .EntityRef (
1095
+ resource = EXAMPLE_RESOURCE ['type' ],
1096
+ meta = {
1097
+ 'key' : 'value' ,
1098
+ 'other_key' : 'other_value'
1099
+ },
1100
+ ))
1101
+
1102
+ def test_vnd_meta_mismatch (self , vnd_single ):
1103
+ response = self .build_response (vnd_single )
1104
+ with pytest .raises (AssertionError ) as err :
1105
+ AssertionHelper .HTTP_200 (response , entity_refs = AssertionHelper .EntityRef (
1106
+ resource = EXAMPLE_RESOURCE ['type' ],
1107
+ meta = {
1108
+ 'key' : 'different value'
1109
+ },
1110
+ ))
1111
+ assert f'Meta field `key` had value `value` not `different value` as expected.' in str (err .value )
1112
+
1113
+ def test_vnd_meta_invalid_key (self , vnd_single ):
1114
+ response = self .build_response (vnd_single )
1115
+ with pytest .raises (AssertionError ) as err :
1116
+ AssertionHelper .HTTP_200 (response , entity_refs = AssertionHelper .EntityRef (
1117
+ resource = EXAMPLE_RESOURCE ['type' ],
1118
+ meta = {
1119
+ 'invalid_key' : 'value'
1120
+ },
1121
+ ))
1122
+ assert f'Meta field `invalid_key` not found' in str (err .value )
1123
+
1124
+ def test_vnd_no_meta (self , vnd_single ):
1125
+ vnd_single ['data' ].pop ('meta' )
1126
+ response = self .build_response (vnd_single )
1127
+ with pytest .raises (AssertionError ) as err :
1128
+ AssertionHelper .HTTP_200 (response , entity_refs = AssertionHelper .EntityRef (
1129
+ resource = EXAMPLE_RESOURCE ['type' ],
1130
+ meta = {
1131
+ 'key' : 'value'
1132
+ },
1133
+ ))
1134
+ assert 'Meta missing' in str (err .value )
1135
+
1136
+ def test_vnd_invalid_meta_format (self , vnd_single ):
1137
+ response = self .build_response (vnd_single )
1138
+ with pytest .raises (AssertionError ) as err :
1139
+ AssertionHelper .HTTP_200 (response , entity_refs = AssertionHelper .EntityRef (
1140
+ resource = EXAMPLE_RESOURCE ['type' ],
1141
+ meta = [{
1142
+ 'key' : 'value'
1143
+ }],
1144
+ ))
1145
+ 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