diff --git a/stripe/multipart_data_generator.py b/stripe/multipart_data_generator.py index 9e5f03c3f..c3e25f2fa 100644 --- a/stripe/multipart_data_generator.py +++ b/stripe/multipart_data_generator.py @@ -29,7 +29,7 @@ def add_params(self, params): # Convert the filename to string, just in case it's not # already one. E.g. `tempfile.TemporaryFile` has a `name` # attribute but it's an `int`. - filename = str(value.name) + filename = stripe.six.text_type(value.name) self._write('Content-Disposition: form-data; name="') self._write(key) diff --git a/tests/test_multipart_data_generator.py b/tests/test_multipart_data_generator.py index 26cf77aaf..bdb6da830 100644 --- a/tests/test_multipart_data_generator.py +++ b/tests/test_multipart_data_generator.py @@ -86,3 +86,8 @@ def test_multipart_data_file_binary(self): def test_multipart_data_stringio(self): string = six.StringIO("foo") self.run_test_multipart_data_with_file(string) + + def test_multipart_data_unicode_file_name(self): + string = six.StringIO("foo") + string.name = u"паспорт.png" + self.run_test_multipart_data_with_file(string)