@@ -105,6 +105,10 @@ def vnd_single():
105105 }
106106 ]
107107 }
108+ },
109+ 'meta' : {
110+ 'key' : 'value' ,
111+ 'other_key' : 'other_value' ,
108112 }
109113 },
110114 'included' : [
@@ -141,6 +145,10 @@ def vnd_list():
141145 }
142146 ]
143147 }
148+ },
149+ 'meta' : {
150+ 'key' : 'value' ,
151+ 'other_key' : 'other_value' ,
144152 }
145153 },
146154 {
@@ -1080,3 +1088,103 @@ def test_plain_json_single_count(self, vnd_single):
10801088 with pytest .raises (AssertionError ) as err :
10811089 AssertionHelper .HTTP_200 (response , count = 1 )
10821090 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