mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
Merge pull request #805 from Lukasa/develop
Remove None values from post data.
This commit is contained in:
+4
-3
@@ -330,9 +330,10 @@ class Request(object):
|
||||
result = []
|
||||
for k, vs in to_key_val_list(data):
|
||||
for v in isinstance(vs, list) and vs or [vs]:
|
||||
result.append(
|
||||
(k.encode('utf-8') if isinstance(k, str) else k,
|
||||
v.encode('utf-8') if isinstance(v, str) else v))
|
||||
if v is not None:
|
||||
result.append(
|
||||
(k.encode('utf-8') if isinstance(k, str) else k,
|
||||
v.encode('utf-8') if isinstance(v, str) else v))
|
||||
return urlencode(result, doseq=True)
|
||||
else:
|
||||
return data
|
||||
|
||||
@@ -1112,5 +1112,15 @@ class RequestsTestSuite(TestSetup, TestBaseMixin, unittest.TestCase):
|
||||
Requests.exceptions.InvalidURL instead of UnicodeError."""
|
||||
self.assertRaises(InvalidURL, get, 'http://.google.com/')
|
||||
|
||||
def test_none_vals_in_data_are_deleted(self):
|
||||
"""Test that keys with None as the value are removed instead of
|
||||
being posted."""
|
||||
data = {'key1': 'value1', 'key2': None}
|
||||
r = post(httpbin('post'), data=data)
|
||||
vals = r.json['form']
|
||||
self.assertEqual(vals['key1'], 'value1')
|
||||
# The 'key2' key should not have been sent.
|
||||
self.assertTrue(vals.get('key2') is None)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user