from .utils import header_expand
from .packages.urllib3.poolmanager import PoolManager
+
def merge_kwargs(local_kwarg, default_kwarg):
"""Merges kwarg dictionaries.
if not hasattr(default_kwarg, 'items'):
return local_kwarg
+ try:
+ dict(local_kwarg)
+ except ValueError:
+ raise ValueError('Unable to encode lists with elements that are not '
+ '2-tuples.')
+
+ if hasattr(local_kwarg, 'items'):
+ local_kwarg = list(local_kwarg.items())
+
# Update new values.
kwargs = default_kwarg.copy()
kwargs.update(local_kwarg)
# Remove keys that are set to None.
- for (k, v) in list(local_kwarg.items()):
+ for (k, v) in local_kwarg:
if v is None:
del kwargs[k]
'headers', 'cookies', 'auth', 'timeout', 'proxies', 'hooks',
'params', 'config', 'verify', 'cert', 'prefetch']
-
def __init__(self,
headers=None,
cookies=None,
self.assertEqual(request.full_url,
"http://example.com/path?key=value&a=b#fragment")
+ def test_params_accepts_kv_list(self):
+ request = requests.Request('http://example.com/path',
+ params=[('a', 'b')])
+ self.assertEqual(request.full_url, 'http://example.com/path?a=b')
+
def test_HTTP_200_OK_GET(self):
r = get(httpbin('get'))
self.assertEqual(r.status_code, 200)