def test_get_response_ok(self, request): retval = object request.return_value = retval callback = mock.Mock() errback = mock.Mock() ar = asyncrequests.AsyncRequest('foo', 'bar', callback=callback, errback=errback) ar.start() self.assertIs(ar.get_response(), retval) self.assertIs(ar.retval, retval) self.assertIsNone(ar.error) self.assertCalledOnceWith(callback, retval) self.assertNotCalled(errback)
def test_run_error(self, request): retval = object error = _TestException() request.return_value = retval request.side_effect = error callback = mock.Mock() errback = mock.Mock() ar = asyncrequests.AsyncRequest('foo', 'bar', callback=callback, errback=errback) ar.start() ar.join() self.assertIsNone(ar.retval) self.assertIs(ar.error, error) self.assertCalledOnceWith(errback, error) self.assertNotCalled(callback)
def test_json_old_api(self, request): # There's no way to mock the module property unless we mock # mock the whole module old_version = asyncrequests._requests_version try: asyncrequests._requests_version = (2, 2) retval = object request.return_value = retval ar = asyncrequests.AsyncRequest('foo', 'bar', json={'baz': 'bin'}) ar.start() ar.join() self.assertCalledOnceWith( request, 'foo', 'bar', headers={'Content-type': 'application/json'}, data='{"baz": "bin"}', timeout=5) self.assertIs(ar.retval, retval) self.assertIsNone(ar.error) finally: asyncrequests._requests_version = old_version