Raising ValueError's when we're passed inconsistent POST data and files dict.
authorStephen Huenneke <stephen.huenneke@gmail.com>
Tue, 6 Aug 2013 18:04:03 +0000 (11:04 -0700)
committerStephen Huenneke <stephen.huenneke@gmail.com>
Tue, 6 Aug 2013 18:04:03 +0000 (11:04 -0700)
requests/models.py
test_requests.py

index 730b9f5ad68077949f31a37a04d370abae86c34d..81ec24692740b85e4b5e87fe811edb051dcf9108 100644 (file)
@@ -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 {})
index 27d5e676e098b8776c846acf649864dd60267c17..01e17803c7b4a8ac231570b5f3a3b13900c76b5c 100755 (executable)
@@ -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)