mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
Merge pull request #1807 from podshumok/fix-request-cookiejar-as-dict
cookiejar.iteritems() is broken after 2.1.0 update
This commit is contained in:
@@ -145,3 +145,4 @@ Patches and Suggestions
|
||||
- Pengfei.X <pengphy@gmail.com>
|
||||
- Kamil Madac <kamil.madac@gmail.com>
|
||||
- Michael Becker <mike@beckerfuffle.com> @beckerfuffle
|
||||
- Константин Подшумок @podshumok
|
||||
|
||||
+19
-10
@@ -198,30 +198,39 @@ class RequestsCookieJar(cookielib.CookieJar, collections.MutableMapping):
|
||||
self.set_cookie(c)
|
||||
return c
|
||||
|
||||
def iterkeys(self):
|
||||
"""Dict-like iterkeys() that returns an iterator of names of cookies from the jar.
|
||||
See itervalues() and iteritems()."""
|
||||
for cookie in iter(self):
|
||||
yield cookie.name
|
||||
|
||||
def keys(self):
|
||||
"""Dict-like keys() that returns a list of names of cookies from the jar.
|
||||
See values() and items()."""
|
||||
keys = []
|
||||
return list(self.iterkeys())
|
||||
|
||||
def itervalues(self):
|
||||
"""Dict-like itervalues() that returns an iterator of values of cookies from the jar.
|
||||
See iterkeys() and iteritems()."""
|
||||
for cookie in iter(self):
|
||||
keys.append(cookie.name)
|
||||
return keys
|
||||
yield cookie.value
|
||||
|
||||
def values(self):
|
||||
"""Dict-like values() that returns a list of values of cookies from the jar.
|
||||
See keys() and items()."""
|
||||
values = []
|
||||
return list(self.itervalues())
|
||||
|
||||
def iteritems(self):
|
||||
"""Dict-like iteritems() that returns an iterator of name-value tuples from the jar.
|
||||
See iterkeys() and itervalues()."""
|
||||
for cookie in iter(self):
|
||||
values.append(cookie.value)
|
||||
return values
|
||||
yield cookie.name, cookie.value
|
||||
|
||||
def items(self):
|
||||
"""Dict-like items() that returns a list of name-value tuples from the jar.
|
||||
See keys() and values(). Allows client-code to call "dict(RequestsCookieJar)
|
||||
and get a vanilla python dict of key value pairs."""
|
||||
items = []
|
||||
for cookie in iter(self):
|
||||
items.append((cookie.name, cookie.value))
|
||||
return items
|
||||
return list(self.iteritems())
|
||||
|
||||
def list_domains(self):
|
||||
"""Utility method to list all the domains in the jar."""
|
||||
|
||||
@@ -570,6 +570,94 @@ class RequestsTestCase(unittest.TestCase):
|
||||
assert cookie.domain == domain
|
||||
assert cookie._rest['HttpOnly'] == rest['HttpOnly']
|
||||
|
||||
def test_cookie_as_dict_keeps_len(self):
|
||||
key = 'some_cookie'
|
||||
value = 'some_value'
|
||||
|
||||
key1 = 'some_cookie1'
|
||||
value1 = 'some_value1'
|
||||
|
||||
jar = requests.cookies.RequestsCookieJar()
|
||||
jar.set(key, value)
|
||||
jar.set(key1, value1)
|
||||
|
||||
d1 = dict(jar)
|
||||
d2 = dict(jar.iteritems())
|
||||
d3 = dict(jar.items())
|
||||
|
||||
assert len(jar) == 2
|
||||
assert len(d1) == 2
|
||||
assert len(d2) == 2
|
||||
assert len(d3) == 2
|
||||
|
||||
def test_cookie_as_dict_keeps_items(self):
|
||||
key = 'some_cookie'
|
||||
value = 'some_value'
|
||||
|
||||
key1 = 'some_cookie1'
|
||||
value1 = 'some_value1'
|
||||
|
||||
jar = requests.cookies.RequestsCookieJar()
|
||||
jar.set(key, value)
|
||||
jar.set(key1, value1)
|
||||
|
||||
d1 = dict(jar)
|
||||
d2 = dict(jar.iteritems())
|
||||
d3 = dict(jar.items())
|
||||
|
||||
assert d1['some_cookie'] == 'some_value'
|
||||
assert d2['some_cookie'] == 'some_value'
|
||||
assert d3['some_cookie1'] == 'some_value1'
|
||||
|
||||
def test_cookie_as_dict_keys(self):
|
||||
key = 'some_cookie'
|
||||
value = 'some_value'
|
||||
|
||||
key1 = 'some_cookie1'
|
||||
value1 = 'some_value1'
|
||||
|
||||
jar = requests.cookies.RequestsCookieJar()
|
||||
jar.set(key, value)
|
||||
jar.set(key1, value1)
|
||||
|
||||
keys = jar.keys()
|
||||
assert keys == list(keys)
|
||||
# make sure one can use keys multiple times
|
||||
assert list(keys) == list(keys)
|
||||
|
||||
def test_cookie_as_dict_values(self):
|
||||
key = 'some_cookie'
|
||||
value = 'some_value'
|
||||
|
||||
key1 = 'some_cookie1'
|
||||
value1 = 'some_value1'
|
||||
|
||||
jar = requests.cookies.RequestsCookieJar()
|
||||
jar.set(key, value)
|
||||
jar.set(key1, value1)
|
||||
|
||||
values = jar.values()
|
||||
assert values == list(values)
|
||||
# make sure one can use values multiple times
|
||||
assert list(values) == list(values)
|
||||
|
||||
def test_cookie_as_dict_items(self):
|
||||
key = 'some_cookie'
|
||||
value = 'some_value'
|
||||
|
||||
key1 = 'some_cookie1'
|
||||
value1 = 'some_value1'
|
||||
|
||||
jar = requests.cookies.RequestsCookieJar()
|
||||
jar.set(key, value)
|
||||
jar.set(key1, value1)
|
||||
|
||||
items = jar.items()
|
||||
assert items == list(items)
|
||||
# make sure one can use items multiple times
|
||||
assert list(items) == list(items)
|
||||
|
||||
|
||||
def test_time_elapsed_blank(self):
|
||||
r = requests.get(httpbin('get'))
|
||||
td = r.elapsed
|
||||
|
||||
Reference in New Issue
Block a user