Loading django/utils/text.py +0 −29 Original line number Diff line number Diff line Loading @@ -4,9 +4,7 @@ import re import unicodedata from gzip import GzipFile from io import BytesIO import warnings from django.utils.deprecation import RemovedInDjango19Warning from django.utils.encoding import force_text from django.utils.functional import allow_lazy, SimpleLazyObject from django.utils import six Loading Loading @@ -328,33 +326,6 @@ def compress_sequence(sequence): zfile.close() yield buf.read() ustring_re = re.compile("([\u0080-\uffff])") def javascript_quote(s, quote_double_quotes=False): msg = ( "django.utils.text.javascript_quote() is deprecated. " "Use django.utils.html.escapejs() instead." ) warnings.warn(msg, RemovedInDjango19Warning, stacklevel=2) def fix(match): return "\\u%04x" % ord(match.group(1)) if type(s) == bytes: s = s.decode('utf-8') elif type(s) != six.text_type: raise TypeError(s) s = s.replace('\\', '\\\\') s = s.replace('\r', '\\r') s = s.replace('\n', '\\n') s = s.replace('\t', '\\t') s = s.replace("'", "\\'") s = s.replace('</', '<\\/') if quote_double_quotes: s = s.replace('"', '"') return ustring_re.sub(fix, s) javascript_quote = allow_lazy(javascript_quote, six.text_type) # Expression to match some_token and some_token="with spaces" (and similarly # for single-quoted strings). Loading tests/utils_tests/test_text.py +1 −33 Original line number Diff line number Diff line # -*- coding: utf-8 -*- from __future__ import unicode_literals from unittest import skipUnless import warnings from django.test import SimpleTestCase, ignore_warnings from django.test.utils import reset_warning_registry from django.test import SimpleTestCase from django.utils import six, text from django.utils.deprecation import RemovedInDjango19Warning from django.utils.encoding import force_text from django.utils.functional import lazy from django.utils.translation import override Loading Loading @@ -197,30 +192,3 @@ class TestUtilsText(SimpleTestCase): def test_get_valid_filename(self): filename = "^&'@{}[],$=!-#()%+~_123.txt" self.assertEqual(text.get_valid_filename(filename), "-_123.txt") @ignore_warnings(category=RemovedInDjango19Warning) def test_javascript_quote(self): input = "<script>alert('Hello \\xff.\n Welcome\there\r');</script>" output = r"<script>alert(\'Hello \\xff.\n Welcome\there\r\');<\/script>" self.assertEqual(text.javascript_quote(input), output) # Exercising quote_double_quotes keyword argument input = '"Text"' self.assertEqual(text.javascript_quote(input), '"Text"') self.assertEqual(text.javascript_quote(input, quote_double_quotes=True), '"Text"') @ignore_warnings(category=RemovedInDjango19Warning) @skipUnless(IS_WIDE_BUILD, 'Not running in a wide build of Python') def test_javascript_quote_unicode(self): input = "<script>alert('Hello \\xff.\n Wel𝕃come\there\r');</script>" output = r"<script>alert(\'Hello \\xff.\n Wel𝕃come\there\r\');<\/script>" self.assertEqual(text.javascript_quote(input), output) def test_deprecation(self): reset_warning_registry() with warnings.catch_warnings(record=True) as w: warnings.simplefilter("always") text.javascript_quote('thingy') self.assertEqual(len(w), 1) self.assertIn('escapejs()', repr(w[0].message)) Loading
django/utils/text.py +0 −29 Original line number Diff line number Diff line Loading @@ -4,9 +4,7 @@ import re import unicodedata from gzip import GzipFile from io import BytesIO import warnings from django.utils.deprecation import RemovedInDjango19Warning from django.utils.encoding import force_text from django.utils.functional import allow_lazy, SimpleLazyObject from django.utils import six Loading Loading @@ -328,33 +326,6 @@ def compress_sequence(sequence): zfile.close() yield buf.read() ustring_re = re.compile("([\u0080-\uffff])") def javascript_quote(s, quote_double_quotes=False): msg = ( "django.utils.text.javascript_quote() is deprecated. " "Use django.utils.html.escapejs() instead." ) warnings.warn(msg, RemovedInDjango19Warning, stacklevel=2) def fix(match): return "\\u%04x" % ord(match.group(1)) if type(s) == bytes: s = s.decode('utf-8') elif type(s) != six.text_type: raise TypeError(s) s = s.replace('\\', '\\\\') s = s.replace('\r', '\\r') s = s.replace('\n', '\\n') s = s.replace('\t', '\\t') s = s.replace("'", "\\'") s = s.replace('</', '<\\/') if quote_double_quotes: s = s.replace('"', '"') return ustring_re.sub(fix, s) javascript_quote = allow_lazy(javascript_quote, six.text_type) # Expression to match some_token and some_token="with spaces" (and similarly # for single-quoted strings). Loading
tests/utils_tests/test_text.py +1 −33 Original line number Diff line number Diff line # -*- coding: utf-8 -*- from __future__ import unicode_literals from unittest import skipUnless import warnings from django.test import SimpleTestCase, ignore_warnings from django.test.utils import reset_warning_registry from django.test import SimpleTestCase from django.utils import six, text from django.utils.deprecation import RemovedInDjango19Warning from django.utils.encoding import force_text from django.utils.functional import lazy from django.utils.translation import override Loading Loading @@ -197,30 +192,3 @@ class TestUtilsText(SimpleTestCase): def test_get_valid_filename(self): filename = "^&'@{}[],$=!-#()%+~_123.txt" self.assertEqual(text.get_valid_filename(filename), "-_123.txt") @ignore_warnings(category=RemovedInDjango19Warning) def test_javascript_quote(self): input = "<script>alert('Hello \\xff.\n Welcome\there\r');</script>" output = r"<script>alert(\'Hello \\xff.\n Welcome\there\r\');<\/script>" self.assertEqual(text.javascript_quote(input), output) # Exercising quote_double_quotes keyword argument input = '"Text"' self.assertEqual(text.javascript_quote(input), '"Text"') self.assertEqual(text.javascript_quote(input, quote_double_quotes=True), '"Text"') @ignore_warnings(category=RemovedInDjango19Warning) @skipUnless(IS_WIDE_BUILD, 'Not running in a wide build of Python') def test_javascript_quote_unicode(self): input = "<script>alert('Hello \\xff.\n Wel𝕃come\there\r');</script>" output = r"<script>alert(\'Hello \\xff.\n Wel𝕃come\there\r\');<\/script>" self.assertEqual(text.javascript_quote(input), output) def test_deprecation(self): reset_warning_registry() with warnings.catch_warnings(record=True) as w: warnings.simplefilter("always") text.javascript_quote('thingy') self.assertEqual(len(w), 1) self.assertIn('escapejs()', repr(w[0].message))