diff --git a/tests/unit/http/test_async_http_client.py b/tests/unit/http/test_async_http_client.py index 23df35dc0..a536d0120 100644 --- a/tests/unit/http/test_async_http_client.py +++ b/tests/unit/http/test_async_http_client.py @@ -58,6 +58,22 @@ async def test_invalid_request_timeout_raises_exception(self): with self.assertRaises(ValueError): await self.client.request("doesnt matter", "doesnt matter", timeout=-1) + async def test_request_uses_client_timeout_when_none_passed(self): + self.client.timeout = 30 + await self.client.request("GET", "https://mock.twilio.com") + + self.session_mock.request.assert_called() + request_args = self.session_mock.request.call_args.kwargs + self.assertEqual(request_args["timeout"], 30) + + async def test_request_timeout_overrides_client_timeout(self): + self.client.timeout = 30 + await self.client.request("GET", "https://mock.twilio.com", timeout=15) + + self.session_mock.request.assert_called() + request_args = self.session_mock.request.call_args.kwargs + self.assertEqual(request_args["timeout"], 15) + class TestAsyncHttpClientRetries(aiounittest.AsyncTestCase): def setUp(self): diff --git a/twilio/http/async_http_client.py b/twilio/http/async_http_client.py index ecd5d4de9..50b90d417 100644 --- a/twilio/http/async_http_client.py +++ b/twilio/http/async_http_client.py @@ -76,7 +76,9 @@ async def request( :return: An http response """ - if timeout is not None and timeout <= 0: + if timeout is None: + timeout = self.timeout + elif timeout <= 0: raise ValueError(timeout) basic_auth = None