From 157ab32f3446da7fa1f9d716509c290069a2a156 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Thu, 7 Jan 2021 08:09:04 +0100 Subject: [PATCH] Refs #27753 -- Removed django.utils.text.unescape_entities() per deprecation timeline. --- django/utils/text.py | 12 ------------ docs/releases/4.0.txt | 2 ++ tests/utils_tests/test_text.py | 29 +---------------------------- 3 files changed, 3 insertions(+), 40 deletions(-) diff --git a/django/utils/text.py b/django/utils/text.py index 4d77ce7f41c..2b1be6c2b19 100644 --- a/django/utils/text.py +++ b/django/utils/text.py @@ -1,11 +1,9 @@ import html.entities import re import unicodedata -import warnings from gzip import GzipFile from io import BytesIO -from django.utils.deprecation import RemovedInDjango40Warning from django.utils.functional import SimpleLazyObject, keep_lazy_text, lazy from django.utils.regex_helper import _lazy_re_compile from django.utils.translation import gettext as _, gettext_lazy, pgettext @@ -359,16 +357,6 @@ def _replace_entity(match): _entity_re = _lazy_re_compile(r"&(#?[xX]?(?:[0-9a-fA-F]+|\w{1,8}));") -@keep_lazy_text -def unescape_entities(text): - warnings.warn( - 'django.utils.text.unescape_entities() is deprecated in favor of ' - 'html.unescape().', - RemovedInDjango40Warning, stacklevel=2, - ) - return _entity_re.sub(_replace_entity, str(text)) - - @keep_lazy_text def unescape_string_literal(s): r""" diff --git a/docs/releases/4.0.txt b/docs/releases/4.0.txt index 339147201db..9b4252dfaf5 100644 --- a/docs/releases/4.0.txt +++ b/docs/releases/4.0.txt @@ -260,6 +260,8 @@ to remove usage of these features. * ``alias=None`` is required in the signature of ``django.db.models.Expression.get_group_by_cols()`` subclasses. +* ``django.utils.text.unescape_entities()`` is removed. + See :ref:`deprecated-features-3.1` for details on these changes, including how to remove usage of these features. diff --git a/tests/utils_tests/test_text.py b/tests/utils_tests/test_text.py index 1b6bfc0b8e4..c9c74521e3c 100644 --- a/tests/utils_tests/test_text.py +++ b/tests/utils_tests/test_text.py @@ -1,9 +1,8 @@ import json import sys -from django.test import SimpleTestCase, ignore_warnings +from django.test import SimpleTestCase from django.utils import text -from django.utils.deprecation import RemovedInDjango40Warning from django.utils.functional import lazystr from django.utils.text import format_lazy from django.utils.translation import gettext_lazy, override @@ -213,32 +212,6 @@ class TestUtilsText(SimpleTestCase): with self.subTest('intern'): self.assertEqual(sys.intern(text.slugify('a')), 'a') - @ignore_warnings(category=RemovedInDjango40Warning) - def test_unescape_entities(self): - items = [ - ('', ''), - ('foo', 'foo'), - ('&', '&'), - ('&am;', '&am;'), - ('&', '&'), - ('&#xk;', '&#xk;'), - ('&', '&'), - ('foo & bar', 'foo & bar'), - ('foo & bar', 'foo & bar'), - ] - for value, output in items: - with self.subTest(value=value): - self.assertEqual(text.unescape_entities(value), output) - self.assertEqual(text.unescape_entities(lazystr(value)), output) - - def test_unescape_entities_deprecated(self): - msg = ( - 'django.utils.text.unescape_entities() is deprecated in favor of ' - 'html.unescape().' - ) - with self.assertWarnsMessage(RemovedInDjango40Warning, msg): - text.unescape_entities('foo') - def test_unescape_string_literal(self): items = [ ('"abc"', 'abc'),