From 9dd823c289faca0d496ef71f25d36216d2259ca3 Mon Sep 17 00:00:00 2001 From: Stephen Huenneke Date: Tue, 6 Aug 2013 11:04:03 -0700 Subject: [PATCH] Raising ValueError's when we're passed inconsistent POST data and files dict. --- requests/models.py | 6 ++++-- test_requests.py | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/requests/models.py b/requests/models.py index 730b9f5a..81ec2469 100644 --- a/requests/models.py +++ b/requests/models.py @@ -92,8 +92,10 @@ class RequestEncodingMixin(object): if parameters are supplied as a dict. """ - if (not files) or isinstance(data, basestring): - return None + if (not files): + raise ValueError("Files must be provided.") + elif isinstance(data, basestring): + raise ValueError("Data must not be a string.") new_fields = [] fields = to_key_val_list(data or {}) diff --git a/test_requests.py b/test_requests.py index 27d5e676..01e17803 100755 --- a/test_requests.py +++ b/test_requests.py @@ -357,6 +357,12 @@ class RequestsTestCase(unittest.TestCase): except ValueError: pass + with open('requirements.txt') as f: + try: + requests.post(url, data='[{"some": "data"}]', files={'some': f}) + except ValueError: + pass + def test_request_ok_set(self): r = requests.get(httpbin('status', '404')) self.assertEqual(r.ok, False)