summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2021-01-05 12:27:52 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-01-14 17:50:04 +0100
commit810f037b29402f848a766f6900b4ebfbaf64cc88 (patch)
tree1f033a88ecd8286530a27dbb83b7150382d00ca7
parent88ed1c8d08c70fd3e7943fc8383459545f726dcd (diff)
Refs #27753 -- Removed django.utils.encoding.force_text() and smart_text() per deprecation timeline.
-rw-r--r--django/utils/encoding.py18
-rw-r--r--docs/ref/utils.txt14
-rw-r--r--docs/releases/4.0.txt2
-rw-r--r--tests/utils_tests/test_encoding_deprecations.py24
4 files changed, 2 insertions, 56 deletions
diff --git a/django/utils/encoding.py b/django/utils/encoding.py
index e1ebacef47..39d44aed0d 100644
--- a/django/utils/encoding.py
+++ b/django/utils/encoding.py
@@ -1,11 +1,9 @@
import codecs
import datetime
import locale
-import warnings
from decimal import Decimal
from urllib.parse import quote
-from django.utils.deprecation import RemovedInDjango40Warning
from django.utils.functional import Promise
@@ -99,22 +97,6 @@ def force_bytes(s, encoding='utf-8', strings_only=False, errors='strict'):
return str(s).encode(encoding, errors)
-def smart_text(s, encoding='utf-8', strings_only=False, errors='strict'):
- warnings.warn(
- 'smart_text() is deprecated in favor of smart_str().',
- RemovedInDjango40Warning, stacklevel=2,
- )
- return smart_str(s, encoding, strings_only, errors)
-
-
-def force_text(s, encoding='utf-8', strings_only=False, errors='strict'):
- warnings.warn(
- 'force_text() is deprecated in favor of force_str().',
- RemovedInDjango40Warning, stacklevel=2,
- )
- return force_str(s, encoding, strings_only, errors)
-
-
def iri_to_uri(iri):
"""
Convert an Internationalized Resource Identifier (IRI) portion to a URI
diff --git a/docs/ref/utils.txt b/docs/ref/utils.txt
index f88fc7f9e7..b04e1196d4 100644
--- a/docs/ref/utils.txt
+++ b/docs/ref/utils.txt
@@ -248,20 +248,6 @@ The functions defined in this module share the following properties:
If ``strings_only`` is ``True``, don't convert (some) non-string-like
objects.
-.. function:: smart_text(s, encoding='utf-8', strings_only=False, errors='strict')
-
- .. deprecated:: 3.0
-
- Alias of :func:`force_str` for backwards compatibility, especially in code
- that supports Python 2.
-
-.. function:: force_text(s, encoding='utf-8', strings_only=False, errors='strict')
-
- .. deprecated:: 3.0
-
- Alias of :func:`force_str` for backwards compatibility, especially in code
- that supports Python 2.
-
.. function:: iri_to_uri(iri)
Convert an Internationalized Resource Identifier (IRI) portion to a URI
diff --git a/docs/releases/4.0.txt b/docs/releases/4.0.txt
index 970a5ff126..9865f59d6e 100644
--- a/docs/releases/4.0.txt
+++ b/docs/releases/4.0.txt
@@ -249,6 +249,8 @@ to remove usage of these features.
* ``django.utils.http.urlquote()``, ``urlquote_plus()``, ``urlunquote()``, and
``urlunquote_plus()`` are removed.
+* ``django.utils.encoding.force_text()`` and ``smart_text()`` are 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_encoding_deprecations.py b/tests/utils_tests/test_encoding_deprecations.py
deleted file mode 100644
index c775ce5f66..0000000000
--- a/tests/utils_tests/test_encoding_deprecations.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from django.test import SimpleTestCase, ignore_warnings
-from django.utils.deprecation import RemovedInDjango40Warning
-from django.utils.encoding import force_text, smart_text
-from django.utils.functional import SimpleLazyObject
-from django.utils.translation import gettext_lazy
-
-
-@ignore_warnings(category=RemovedInDjango40Warning)
-class TestDeprecatedEncodingUtils(SimpleTestCase):
-
- def test_force_text(self):
- s = SimpleLazyObject(lambda: 'x')
- self.assertIs(type(force_text(s)), str)
-
- def test_smart_text(self):
- class Test:
- def __str__(self):
- return 'ŠĐĆŽćžšđ'
-
- lazy_func = gettext_lazy('x')
- self.assertIs(smart_text(lazy_func), lazy_func)
- self.assertEqual(smart_text(Test()), '\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111')
- self.assertEqual(smart_text(1), '1')
- self.assertEqual(smart_text('foo'), 'foo')