diff options
| author | Salvo Polizzi <plzslv03@studium.unict.it> | 2024-02-22 12:04:03 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2024-02-23 15:54:49 +0100 |
| commit | 6e1ece7ed522c904a674966fa985159b7bbf1545 (patch) | |
| tree | 6b6c5ea0322d1185eac261302420f13a4f162b43 /tests | |
| parent | 50e95ad5367a4a93f94a66a645f9c126f0609f0a (diff) | |
Fixed #35090 -- Deprecated registering URL converters with the same name.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/urlpatterns/tests.py | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/tests/urlpatterns/tests.py b/tests/urlpatterns/tests.py index f8d73fdb4a..37109c9a11 100644 --- a/tests/urlpatterns/tests.py +++ b/tests/urlpatterns/tests.py @@ -4,10 +4,20 @@ import uuid from django.core.exceptions import ImproperlyConfigured from django.test import SimpleTestCase from django.test.utils import override_settings -from django.urls import NoReverseMatch, Resolver404, path, re_path, resolve, reverse +from django.urls import ( + NoReverseMatch, + Resolver404, + path, + re_path, + register_converter, + resolve, + reverse, +) +from django.urls.converters import IntConverter +from django.utils.deprecation import RemovedInDjango60Warning from django.views import View -from .converters import DynamicConverter +from .converters import Base64Converter, DynamicConverter from .views import empty_view included_kwargs = {"base": b"hello", "value": b"world"} @@ -193,6 +203,28 @@ class SimplifiedURLTests(SimpleTestCase): with self.assertRaisesMessage(ImproperlyConfigured, msg): path("foo/<nonexistent:var>/", empty_view) + def test_warning_override_default_converter(self): + # RemovedInDjango60Warning: when the deprecation ends, replace with + # msg = "Converter 'int' is already registered." + # with self.assertRaisesMessage(ValueError, msg): + msg = ( + "Converter 'int' is already registered. Support for overriding registered " + "converters is deprecated and will be removed in Django 6.0." + ) + with self.assertWarnsMessage(RemovedInDjango60Warning, msg): + register_converter(IntConverter, "int") + + def test_warning_override_converter(self): + # RemovedInDjango60Warning: when the deprecation ends, replace with + # msg = "Converter 'base64' is already registered." + # with self.assertRaisesMessage(ValueError, msg): + msg = ( + "Converter 'base64' is already registered. Support for overriding " + "registered converters is deprecated and will be removed in Django 6.0." + ) + with self.assertWarnsMessage(RemovedInDjango60Warning, msg): + register_converter(Base64Converter, "base64") + def test_invalid_view(self): msg = "view must be a callable or a list/tuple in the case of include()." with self.assertRaisesMessage(TypeError, msg): |
