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)