Merge lp:~james-w/summit/fix-plus-in-meeting-name into lp:summit

Proposed by James Westby
Status: Merged
Approved by: Michael Hall
Approved revision: 186
Merged at revision: 188
Proposed branch: lp:~james-w/summit/fix-plus-in-meeting-name
Merge into: lp:summit
Diff against target: 80 lines (+34/-7)
2 files modified
summit/schedule/tests.py (+29/-2)
summit/urls.py (+5/-5)
To merge this branch: bzr merge lp:~james-w/summit/fix-plus-in-meeting-name
Reviewer Review Type Date Requested Status
Michael Hall (community) Approve
Review via email: mp+76071@code.launchpad.net

Commit message

Allow + in track, room and attendee names without causing url lookup errors.

Description of the change

Hi,

A followup branch to have urls.py support + in room, track, and attendee
names as well.

Thanks,

James

To post a comment you must log in.
Revision history for this message
Michael Hall (mhall119) wrote :

Looks good

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'summit/schedule/tests.py'
2--- summit/schedule/tests.py 2011-09-19 16:26:12 +0000
3+++ summit/schedule/tests.py 2011-09-19 17:09:35 +0000
4@@ -362,6 +362,16 @@
5 reverse_url = reverse('summit.schedule.views.room_ical', args=rev_args)
6 self.assertEquals(reverse_url, '/uds-test/room/test%room.ical')
7
8+ def test_room_name_with_plus_sign(self):
9+ room = factory.make_one(Room, summit=self.summit, name='test.room')
10+
11+ rev_args = ['uds-test', 'test+room']
12+ reverse_url = reverse('summit.schedule.views.by_room', args=rev_args)
13+ self.assertEquals(reverse_url, '/uds-test/test+room/')
14+
15+ reverse_url = reverse('summit.schedule.views.room_ical', args=rev_args)
16+ self.assertEquals(reverse_url, '/uds-test/room/test+room.ical')
17+
18 def test_track_name_with_percent(self):
19 ''' Test the following Track urlconfs
20 (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[\.\w-]+)/$', 'by_track'),
21@@ -375,7 +385,17 @@
22
23 reverse_url = reverse('summit.schedule.views.track_ical', args=rev_args)
24 self.assertEquals(reverse_url, '/uds-test/track/test%track.ical')
25-
26+
27+ def test_track_name_with_plus_sign(self):
28+ track = factory.make_one(Track, summit=self.summit, slug='test.track')
29+
30+ rev_args = ['uds-test', 'test+track']
31+ reverse_url = reverse('summit.schedule.views.by_track', args=rev_args)
32+ self.assertEquals(reverse_url, '/uds-test/track/test+track/')
33+
34+ reverse_url = reverse('summit.schedule.views.track_ical', args=rev_args)
35+ self.assertEquals(reverse_url, '/uds-test/track/test+track.ical')
36+
37 def test_participant_name_with_percent(self):
38 ''' Test the following User urlconf
39 (r'^(?P<summit_name>[\w-]+)/participant/(?P<username>[\.\w-]+)\.ical$', 'user_ical'),
40@@ -385,7 +405,14 @@
41 rev_args = ['uds-test', 'test%user']
42 reverse_url = reverse('summit.schedule.views.user_ical', args=rev_args)
43 self.assertEquals(reverse_url, '/uds-test/participant/test%user.ical')
44-
45+
46+ def test_participant_name_with_plus_sign(self):
47+ user = factory.make_one(User, username='test.user')
48+
49+ rev_args = ['uds-test', 'test+user']
50+ reverse_url = reverse('summit.schedule.views.user_ical', args=rev_args)
51+ self.assertEquals(reverse_url, '/uds-test/participant/test+user.ical')
52+
53
54 class EtherpadEditUrl(djangotest.TestCase):
55
56
57=== modified file 'summit/urls.py'
58--- summit/urls.py 2011-09-19 16:26:12 +0000
59+++ summit/urls.py 2011-09-19 17:09:35 +0000
60@@ -64,15 +64,15 @@
61
62 (r'^(?P<summit_name>[\w-]+)/next$', 'next_session'),
63 (r'^(?P<summit_name>[\w-]+)/(?P<date>[\d-]+)/$', 'by_date'),
64- (r'^(?P<summit_name>[\w-]+)/(?P<room_name>[%\.\w-]+)/$', 'by_room'),
65- (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[%\.\w-]+)/$', 'by_track'),
66+ (r'^(?P<summit_name>[\w-]+)/(?P<room_name>[%+\.\w-]+)/$', 'by_room'),
67+ (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[%+\.\w-]+)/$', 'by_track'),
68 (r'^(?P<summit_name>[\w-]+)/meeting/(?P<meeting_id>\d+)/(?P<meeting_slug>[%+\.\w-]+)/$', 'meeting'),
69 (r'^(?P<summit_name>[\w-]+)\.csv$', 'csv'),
70 (r'^(?P<summit_name>[\w-]+)\.ical$', 'ical'),
71 (r'^(?P<summit_name>[\w-]+)/participant/my_schedule_(?P<secret_key>[0-9a-f]{32})\.ical$', 'user_private_ical'),
72- (r'^(?P<summit_name>[\w-]+)/participant/(?P<username>[%\.\w-]+)\.ical$', 'user_ical'),
73- (r'^(?P<summit_name>[\w-]+)/room/(?P<room_name>[%\.\w-]+).ical$', 'room_ical'),
74- (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[%\.\w-]+).ical$', 'track_ical'),
75+ (r'^(?P<summit_name>[\w-]+)/participant/(?P<username>[%+\.\w-]+)\.ical$', 'user_ical'),
76+ (r'^(?P<summit_name>[\w-]+)/room/(?P<room_name>[%+\.\w-]+).ical$', 'room_ical'),
77+ (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[%+\.\w-]+).ical$', 'track_ical'),
78 )
79
80 if settings.DEBUG or settings.SERVE_STATIC:

Subscribers

People subscribed via source and target branches