summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/utils/encoding.py2
-rw-r--r--tests/utils_tests/test_encoding.py6
2 files changed, 7 insertions, 1 deletions
diff --git a/django/utils/encoding.py b/django/utils/encoding.py
index d31c27fe80..470005bb46 100644
--- a/django/utils/encoding.py
+++ b/django/utils/encoding.py
@@ -122,7 +122,7 @@ def force_bytes(s, encoding='utf-8', strings_only=False, errors='strict'):
return s
else:
return s.decode('utf-8', errors).encode(encoding, errors)
- if strings_only and (s is None or isinstance(s, int)):
+ if strings_only and is_protected_type(s):
return s
if isinstance(s, Promise):
return six.text_type(s).encode(encoding, errors)
diff --git a/tests/utils_tests/test_encoding.py b/tests/utils_tests/test_encoding.py
index 72c35adec6..5730eca6d5 100644
--- a/tests/utils_tests/test_encoding.py
+++ b/tests/utils_tests/test_encoding.py
@@ -2,11 +2,13 @@
from __future__ import unicode_literals
import unittest
+import datetime
from django.utils.encoding import force_bytes, filepath_to_uri
class TestEncodingUtils(unittest.TestCase):
+
def test_force_bytes_exception(self):
"""
Test that force_bytes knows how to convert to bytes an exception
@@ -17,6 +19,10 @@ class TestEncodingUtils(unittest.TestCase):
result = force_bytes(exc)
self.assertEqual(result, error_msg.encode('utf-8'))
+ def test_force_bytes_strings_only(self):
+ today = datetime.date.today()
+ self.assertEqual(force_bytes(today, strings_only=True), today)
+
def test_filepath_to_uri(self):
self.assertEqual(filepath_to_uri('upload\\чубака.mp4'),
'upload/%D1%87%D1%83%D0%B1%D0%B0%D0%BA%D0%B0.mp4')