1 "Unit tests for reverse URL lookup"
3 from django
.core
.urlresolvers
import reverse_helper
, NoReverseMatch
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
:
33 got
= reverse_helper(re
.compile(regex
), *args
, **kwargs
)
34 except NoReverseMatch
, e
:
35 self
.assertEqual(expected
, NoReverseMatch
)
37 self
.assertEquals(got
, expected
)
39 if __name__
== "__main__":