Loading django/utils/encoding.py +1 −1 Original line number Diff line number Diff line Loading @@ -174,7 +174,7 @@ def force_bytes(s, encoding='utf-8', strings_only=False, errors='strict'): # An Exception subclass containing non-ASCII data that doesn't # know how to print itself properly. We shouldn't raise a # further exception. return ' '.join([force_bytes(arg, encoding, strings_only, return b' '.join([force_bytes(arg, encoding, strings_only, errors) for arg in s]) return six.text_type(s).encode(encoding, errors) else: Loading tests/regressiontests/utils/encoding.py 0 → 100644 +17 −0 Original line number Diff line number Diff line # -*- encoding: utf-8 -*- from __future__ import unicode_literals from django.utils import unittest from django.utils.encoding import force_bytes class TestEncodingUtils(unittest.TestCase): def test_force_bytes_exception(self): """ Test that force_bytes knows how to convert to bytes an exception containing non-ASCII characters in its args. """ error_msg = "This is an exception, voilà" exc = ValueError(error_msg) result = force_bytes(exc) self.assertEqual(result, error_msg.encode('utf-8')) tests/regressiontests/utils/tests.py +1 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ from .dateformat import DateFormatTests from .dateparse import DateParseTests from .datetime_safe import DatetimeTests from .decorators import DecoratorFromMiddlewareTests from .encoding import TestEncodingUtils from .feedgenerator import FeedgeneratorTest from .functional import FunctionalTestCase from .html import TestUtilsHtml Loading Loading
django/utils/encoding.py +1 −1 Original line number Diff line number Diff line Loading @@ -174,7 +174,7 @@ def force_bytes(s, encoding='utf-8', strings_only=False, errors='strict'): # An Exception subclass containing non-ASCII data that doesn't # know how to print itself properly. We shouldn't raise a # further exception. return ' '.join([force_bytes(arg, encoding, strings_only, return b' '.join([force_bytes(arg, encoding, strings_only, errors) for arg in s]) return six.text_type(s).encode(encoding, errors) else: Loading
tests/regressiontests/utils/encoding.py 0 → 100644 +17 −0 Original line number Diff line number Diff line # -*- encoding: utf-8 -*- from __future__ import unicode_literals from django.utils import unittest from django.utils.encoding import force_bytes class TestEncodingUtils(unittest.TestCase): def test_force_bytes_exception(self): """ Test that force_bytes knows how to convert to bytes an exception containing non-ASCII characters in its args. """ error_msg = "This is an exception, voilà" exc = ValueError(error_msg) result = force_bytes(exc) self.assertEqual(result, error_msg.encode('utf-8'))
tests/regressiontests/utils/tests.py +1 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ from .dateformat import DateFormatTests from .dateparse import DateParseTests from .datetime_safe import DatetimeTests from .decorators import DecoratorFromMiddlewareTests from .encoding import TestEncodingUtils from .feedgenerator import FeedgeneratorTest from .functional import FunctionalTestCase from .html import TestUtilsHtml Loading