Merge pull request #2706 from ak1r4/fix-merge-setting

Fix merge setting for not preserving original order of dict parameters
This commit is contained in:
Ian Cordasco
2015-08-15 10:39:46 -05:00
2 changed files with 8 additions and 3 deletions
+1 -3
View File
@@ -63,12 +63,10 @@ def merge_setting(request_setting, session_setting, dict_class=OrderedDict):
merged_setting.update(to_key_val_list(request_setting))
# Remove keys that are set to None.
for (k, v) in request_setting.items():
for (k, v) in merged_setting.items():
if v is None:
del merged_setting[k]
merged_setting = dict((k, v) for (k, v) in merged_setting.items() if v is not None)
return merged_setting
+7
View File
@@ -125,6 +125,13 @@ class RequestsTestCase(unittest.TestCase):
"http://example.com/path?key=value#fragment", params={"a": "b"}).prepare()
assert request.url == "http://example.com/path?key=value&a=b#fragment"
def test_params_original_order_is_preserved_by_default(self):
param_ordered_dict = collections.OrderedDict((('z', 1), ('a', 1), ('k', 1), ('d', 1)))
session = requests.Session()
request = requests.Request('GET', 'http://example.com/', params=param_ordered_dict)
prep = session.prepare_request(request)
assert prep.url == 'http://example.com/?z=1&a=1&k=1&d=1'
def test_mixed_case_scheme_acceptable(self):
s = requests.Session()
s.proxies = getproxies()