]> git.ipfire.org Git - thirdparty/httpx.git/commitdiff
Made cookies construct-able from a list of tuples (#1211)
authorcdeler <serj.krotov@gmail.com>
Mon, 24 Aug 2020 09:44:48 +0000 (12:44 +0300)
committerGitHub <noreply@github.com>
Mon, 24 Aug 2020 09:44:48 +0000 (10:44 +0100)
* Added test which checks that cookie might be built from a list of tuples (#1209)

* Made cookies constructable from a list of tuples (#1209)

httpx/_models.py
httpx/_types.py
tests/models/test_cookies.py

index 3ce57899c3a7bce253a5ddec94e26eca5a649a37..67cebeb09115ba68eef5cc51471ba74991755197 100644 (file)
@@ -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:
index 437d601c90faf4be014ccacac70e9befc3a00166..3a90ee42e7a3a7d5bd962a1ad7e583310d51700f 100644 (file)
@@ -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]
index bd485b349f1b6aa7dedf781134742355ab5f45fb..12d0fb5ae972eb033e2ca6f4553aeb6f92dee186 100644 (file)
@@ -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