1
0
mirror of https://github.com/django/django.git synced 2025-10-24 06:06:09 +00:00

Fixed #35090 -- Deprecated registering URL converters with the same name.

This commit is contained in:
Salvo Polizzi
2024-02-22 12:04:03 +01:00
committed by Mariusz Felisiak
parent 50e95ad536
commit 6e1ece7ed5
6 changed files with 61 additions and 2 deletions

View File

@@ -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):