def test_retry_with_twisted(mock_client, mock_response): from twisted.internet import defer @defer.inlineCallbacks def return_response(): yield defer.returnValue(mock_response) # Setup mock_response.with_json({"id": 123, "name": "prkumar"}) mock_client.with_side_effect([Exception, return_response()]) mock_client.with_io(io.TwistedStrategy()) github = GitHub(base_url=BASE_URL, client=mock_client) # Run response = yield github.get_user("prkumar") assert len(mock_client.history) == 2 assert response.json() == {"id": 123, "name": "prkumar"}
def io(): return io.TwistedStrategy()