File: test_deprecated.py

package info (click to toggle)
python-django 1%3A1.11.29-1~deb10u1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 47,428 kB
  • sloc: python: 220,776; javascript: 13,523; makefile: 209; xml: 201; sh: 64
file content (33 lines) | stat: -rw-r--r-- 1,200 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import warnings

from django.conf.urls import url
from django.test import SimpleTestCase, override_settings
from django.urls import reverse

from .views import empty_view

urlpatterns = [
    url(r'^(?i)CaseInsensitive/(\w+)', empty_view, name="insensitive"),
    url(r'^(?i)test/2/?$', empty_view, name="test2"),
]


@override_settings(ROOT_URLCONF='urlpatterns_reverse.test_deprecated')
class URLPatternReverse(SimpleTestCase):

    def test_urlpattern_reverse(self):
        test_data = (
            ('insensitive', '/CaseInsensitive/fred', ['fred'], {}),
            ('test2', '/test/2', [], {}),
        )
        with warnings.catch_warnings(record=True) as warns:
            warnings.simplefilter('always')
            warnings.filterwarnings(
                'ignore', 'Flags not at the start',
                DeprecationWarning, module='django.urls.resolvers'
            )
            for i, (name, expected, args, kwargs) in enumerate(test_data):
                got = reverse(name, args=args, kwargs=kwargs)
                self.assertEqual(got, expected)
                msg = str(warns[i].message)
                self.assertEqual(msg, 'Using (?i) in url() patterns is deprecated.')