From: cdeler Date: Mon, 24 Aug 2020 09:44:48 +0000 (+0300) Subject: Made cookies construct-able from a list of tuples (#1211) X-Git-Tag: 0.14.2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6e6ece66c633f0b1a74486d674f2019cb3f1c07f;p=thirdparty%2Fhttpx.git Made cookies construct-able from a list of tuples (#1211) * Added test which checks that cookie might be built from a list of tuples (#1209) * Made cookies constructable from a list of tuples (#1209) --- diff --git a/httpx/_models.py b/httpx/_models.py index 3ce57899..67cebeb0 100644 --- a/httpx/_models.py +++ b/httpx/_models.py @@ -1047,6 +1047,10 @@ class Cookies(MutableMapping): if isinstance(cookies, dict): for key, value in cookies.items(): self.set(key, value) + elif isinstance(cookies, list): + self.jar = CookieJar() + for key, value in cookies: + self.set(key, value) elif isinstance(cookies, Cookies): self.jar = CookieJar() for cookie in cookies.jar: diff --git a/httpx/_types.py b/httpx/_types.py index 437d601c..3a90ee42 100644 --- a/httpx/_types.py +++ b/httpx/_types.py @@ -45,7 +45,7 @@ HeaderTypes = Union[ Sequence[Tuple[bytes, bytes]], ] -CookieTypes = Union["Cookies", CookieJar, Dict[str, str]] +CookieTypes = Union["Cookies", CookieJar, Dict[str, str], List[Tuple[str, str]]] CertTypes = Union[str, Tuple[str, str], Tuple[str, str, str]] VerifyTypes = Union[str, bool, ssl.SSLContext] diff --git a/tests/models/test_cookies.py b/tests/models/test_cookies.py index bd485b34..12d0fb5a 100644 --- a/tests/models/test_cookies.py +++ b/tests/models/test_cookies.py @@ -75,3 +75,13 @@ def test_multiple_set_cookie(): cookies.extract_cookies(response) assert len(cookies) == 2 + + +def test_cookies_can_be_a_list_of_tuples(): + cookies_val = [("name1", "val1"), ("name2", "val2")] + + cookies = httpx.Cookies(cookies_val) + + assert len(cookies.items()) == 2 + for k, v in cookies_val: + assert cookies[k] == v