From: barberj Date: Sat, 21 Apr 2012 02:15:35 +0000 (-0400) Subject: added mutlipart file=strings X-Git-Tag: v0.12.1~2^2^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ed7b14899fcc196acb5631819585dcc2be1b41f7;p=services%2Fpython-requests.git added mutlipart file=strings --- diff --git a/requests/models.py b/requests/models.py index 62aeb9c..7569244 100644 --- a/requests/models.py +++ b/requests/models.py @@ -32,7 +32,7 @@ from .utils import ( DEFAULT_CA_BUNDLE_PATH) from .compat import ( cookielib, urlparse, urlunparse, urljoin, urlsplit, urlencode, str, bytes, - is_py2) + StringIO, is_py2) # Import chardet if it is available. try: @@ -348,6 +348,8 @@ class Request(object): else: fn = guess_filename(v) or k fp = v + if isinstance(fp, bytes): + fp = StringIO(fp) fields.update({k: (fn, fp.read())}) (body, content_type) = encode_multipart_formdata(fields) diff --git a/tests/test_requests.py b/tests/test_requests.py index 71967bb..43745a5 100755 --- a/tests/test_requests.py +++ b/tests/test_requests.py @@ -329,6 +329,21 @@ class RequestsTestSuite(TestSetup, TestBaseMixin, unittest.TestCase): self.assertEqual(post2.status_code, 200) + def test_POSTBIN_GET_POST_FILES_STRINGS(self): + + for service in SERVICES: + + url = service('post') + + post1 = post(url, files={'fname.txt': 'fdata'}) + self.assertEqual(post1.status_code, 200) + + post2 = post(url, files={'fname.txt': 'fdata', 'fname2.txt':'more fdata'}) + self.assertEqual(post2.status_code, 200) + + post3 = post(url, files={'fname.txt': 'fdata', 'fname2.txt':open(__file__,'rb')}) + self.assertEqual(post3.status_code, 200) + def test_nonzero_evaluation(self): for service in SERVICES: