]> git.ipfire.org Git - thirdparty/httpx.git/commitdiff
#1066 make BaseClient's timeout accessible using getters and setters (#1135)
authorcdeler <serj.krotov@gmail.com>
Thu, 6 Aug 2020 11:09:21 +0000 (14:09 +0300)
committerGitHub <noreply@github.com>
Thu, 6 Aug 2020 11:09:21 +0000 (12:09 +0100)
httpx/_client.py
tests/client/test_properties.py

index 645c83e0f171f02832cd6bd4de9669ebe71b761f..1829b9575bc958b8bdd4dc1700d0e82d345d921a 100644 (file)
@@ -75,7 +75,7 @@ class BaseClient:
         self._params = QueryParams(params)
         self._headers = Headers(headers)
         self._cookies = Cookies(cookies)
-        self.timeout = Timeout(timeout)
+        self._timeout = Timeout(timeout)
         self.max_redirects = max_redirects
         self._trust_env = trust_env
         self._netrc = NetRCInfo()
@@ -109,6 +109,14 @@ class BaseClient:
             proxy = Proxy(url=proxies) if isinstance(proxies, (str, URL)) else proxies
             return {"all": proxy}
 
+    @property
+    def timeout(self) -> Timeout:
+        return self._timeout
+
+    @timeout.setter
+    def timeout(self, timeout: TimeoutTypes) -> None:
+        self._timeout = Timeout(timeout)
+
     @property
     def base_url(self) -> URL:
         """
index 3532774727acd26e062946d7245dae2513962c79..b0f42efbaa50ba23bf0f0523e8231a4ad141d9da 100644 (file)
@@ -1,4 +1,4 @@
-from httpx import URL, AsyncClient, Cookies, Headers
+from httpx import URL, AsyncClient, Cookies, Headers, Timeout
 
 
 def test_client_base_url():
@@ -36,3 +36,16 @@ def test_client_cookies():
     mycookies = list(client.cookies.jar)
     assert len(mycookies) == 1
     assert mycookies[0].name == "a" and mycookies[0].value == "b"
+
+
+def test_client_timeout():
+    expected_timeout = 12.0
+    client = AsyncClient()
+
+    client.timeout = expected_timeout  # type: ignore
+
+    assert isinstance(client.timeout, Timeout)
+    assert client.timeout.connect == expected_timeout
+    assert client.timeout.read == expected_timeout
+    assert client.timeout.write == expected_timeout
+    assert client.timeout.pool == expected_timeout