MCPcopy Create free account
hub / github.com/apache/mesos / test_resource_request_json

Function test_resource_request_json

src/python/lib/tests/test_http.py:239–299  ·  view source on GitHub ↗
(
        mock_ujson_loads,
        mock_mesos_http_request,
        default_tos,
        override_tos,
        json_payload,
        obj_decoder,
        request_exception,
        resp_status,
        json_exception,
        expected_exception,
        expected_additional_kwargs)

Source from the content-addressed store, hash-verified

237 expected_exception=http.MesosException,
238 expected_additional_kwargs=[{}])])
239def test_resource_request_json(
240 mock_ujson_loads,
241 mock_mesos_http_request,
242 default_tos,
243 override_tos,
244 json_payload,
245 obj_decoder,
246 request_exception,
247 resp_status,
248 json_exception,
249 expected_exception,
250 expected_additional_kwargs):
251 call_kwargs = dict(method=http.METHOD_POST,
252 json={'some': 'payload'},
253 timeout=None,
254 url='http://some.domain/some/prefix',
255 auth=None,
256 headers={'Accept': 'application/json',
257 'Accept-Encoding': 'gzip'},
258 params=None)
259 mock_calls = []
260 for kwargs in expected_additional_kwargs:
261 call_kwargs.update(kwargs)
262 mock_calls.append(mock.call(**call_kwargs))
263
264 def json_side_effect(_):
265 if json_exception is None:
266 return {'some': 'return_value'}
267 raise json_exception
268
269 def request_side_effect(*_, **__):
270 if request_exception is None:
271 return mock.Mock(status_code=resp_status)
272 raise request_exception
273
274 mock_mesos_http_request.side_effect = request_side_effect
275 mock_ujson_loads.side_effect = json_side_effect
276
277 resource = http.Resource('http://some.domain/some/prefix',
278 default_timeout=default_tos,
279 default_auth=None,
280 default_max_attempts=1,
281 default_use_gzip_encoding=True)
282
283 if expected_exception is None:
284 ret = resource.request_json(http.METHOD_POST,
285 timeout=override_tos,
286 payload=json_payload,
287 decoder=obj_decoder)
288 expected_ret = {'some': 'return_value'}
289 if obj_decoder is None:
290 assert ret == expected_ret
291 else:
292 assert ret == SomeModel(**expected_ret)
293 else:
294 with pytest.raises(expected_exception):
295 resource.request_json(http.METHOD_POST,
296 timeout=override_tos,

Callers

nothing calls this directly

Calls 4

request_jsonMethod · 0.95
updateMethod · 0.45
appendMethod · 0.45
callMethod · 0.45

Tested by

no test coverage detected