Revert [7849] and [7850]. Brain failure on my part.
[django.git] / tests / regressiontests / urlpatterns_reverse / tests.py
blob610c3f7bc7ec6d7670eb0de1c01a48ecb53c9a05
1 "Unit tests for reverse URL lookup"
3 from django.core.urlresolvers import reverse_helper, NoReverseMatch
4 import re, unittest
6 test_data = (
7 ('^places/(\d+)/$', 'places/3/', [3], {}),
8 ('^places/(\d+)/$', 'places/3/', ['3'], {}),
9 ('^places/(\d+)/$', NoReverseMatch, ['a'], {}),
10 ('^places/(\d+)/$', NoReverseMatch, [], {}),
11 ('^places/(?P<id>\d+)/$', 'places/3/', [], {'id': 3}),
12 ('^people/(?P<name>\w+)/$', 'people/adrian/', ['adrian'], {}),
13 ('^people/(?P<name>\w+)/$', 'people/adrian/', [], {'name': 'adrian'}),
14 ('^people/(?P<name>\w+)/$', NoReverseMatch, ['name with spaces'], {}),
15 ('^people/(?P<name>\w+)/$', NoReverseMatch, [], {'name': 'name with spaces'}),
16 ('^people/(?P<name>\w+)/$', NoReverseMatch, [], {}),
17 ('^hardcoded/$', 'hardcoded/', [], {}),
18 ('^hardcoded/$', 'hardcoded/', ['any arg'], {}),
19 ('^hardcoded/$', 'hardcoded/', [], {'kwarg': 'foo'}),
20 ('^hardcoded/doc\\.pdf$', 'hardcoded/doc.pdf', [], {}),
21 ('^people/(?P<state>\w\w)/(?P<name>\w+)/$', 'people/il/adrian/', [], {'state': 'il', 'name': 'adrian'}),
22 ('^people/(?P<state>\w\w)/(?P<name>\d)/$', NoReverseMatch, [], {'state': 'il', 'name': 'adrian'}),
23 ('^people/(?P<state>\w\w)/(?P<name>\w+)/$', NoReverseMatch, [], {'state': 'il'}),
24 ('^people/(?P<state>\w\w)/(?P<name>\w+)/$', NoReverseMatch, [], {'name': 'adrian'}),
25 ('^people/(?P<state>\w\w)/(\w+)/$', NoReverseMatch, ['il'], {'name': 'adrian'}),
26 ('^people/(?P<state>\w\w)/(\w+)/$', 'people/il/adrian/', ['adrian'], {'state': 'il'}),
29 class URLPatternReverse(unittest.TestCase):
30 def test_urlpattern_reverse(self):
31 for regex, expected, args, kwargs in test_data:
32 try:
33 got = reverse_helper(re.compile(regex), *args, **kwargs)
34 except NoReverseMatch, e:
35 self.assertEqual(expected, NoReverseMatch)
36 else:
37 self.assertEquals(got, expected)
39 if __name__ == "__main__":
40 run_tests(1)