model the encode_files data handling after encode_params
authorJason Emerick <jason@mobelux.com>
Tue, 2 Apr 2013 18:22:49 +0000 (14:22 -0400)
committerJason Emerick <jason@mobelux.com>
Tue, 2 Apr 2013 18:22:49 +0000 (14:22 -0400)
requests/models.py

index 8249ce3ac723e233945846f6e6a72fe4e690055f..0860567a5b32bc58d655dc4d2327f8ffc44c69ca 100644 (file)
@@ -99,11 +99,13 @@ class RequestEncodingMixin(object):
         files = to_key_val_list(files or {})
 
         for field, val in fields:
-            if isinstance(val, list):
-                for v in val:
-                    new_fields.append((field, str(v)))
-            else:
-                new_fields.append((field, str(val)))
+            if isinstance(val, basestring) or not hasattr(val, '__iter__'):
+                val = [val]
+            for v in val:
+                if v is not None:
+                    new_fields.append(
+                        (field.encode('utf-8') if isinstance(field, str) else field,
+                         v.encode('utf-8') if isinstance(v, str) else v))
 
         for (k, v) in files:
             # support for explicit filename