added unicode strings
authorbarberj <barber.justin@gmail.com>
Sat, 21 Apr 2012 03:30:45 +0000 (23:30 -0400)
committerShivaram Lingamneni <slingamn@cs.stanford.edu>
Sun, 6 May 2012 22:14:57 +0000 (15:14 -0700)
requests/models.py
tests/test_requests.py

index 756924473afd4d4b20753f1344fc79fd08dcf0e0..c0d613bb7eee36a28d0bc43f98cc78ef09edea69 100644 (file)
@@ -348,7 +348,7 @@ class Request(object):
             else:
                 fn = guess_filename(v) or k
                 fp = v
-            if isinstance(fp, bytes):
+            if isinstance(fp, (bytes, str)):
                 fp = StringIO(fp)
             fields.update({k: (fn, fp.read())})
 
index 43745a56625fc857831dfb32e74a8d440fc9e959..e8a9d4eefdeeabcafa7572638d37c8bafdfd2fa9 100755 (executable)
@@ -344,6 +344,15 @@ class RequestsTestSuite(TestSetup, TestBaseMixin, unittest.TestCase):
             post3 = post(url, files={'fname.txt': 'fdata', 'fname2.txt':open(__file__,'rb')})
             self.assertEqual(post3.status_code, 200)
 
+            post4 = post(url, files={'fname.txt': u'fdata'})
+            self.assertEqual(post4.status_code, 200)
+
+            post5 = post(url, files={'file': ('file.txt', 'more fdata')})
+            self.assertEqual(post5.status_code, 200)
+
+            post6 = post(url, files={'fname.txt': u'\xe9'})
+            self.assertEqual(post6.status_code, 200)
+
     def test_nonzero_evaluation(self):
 
         for service in SERVICES: