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
=== modified file 'summit/schedule/tests.py'
--- summit/schedule/tests.py 2011-09-19 16:26:12 +0000
+++ summit/schedule/tests.py 2011-09-19 17:09:35 +0000
@@ -362,6 +362,16 @@
362 reverse_url = reverse('summit.schedule.views.room_ical', args=rev_args)362 reverse_url = reverse('summit.schedule.views.room_ical', args=rev_args)
363 self.assertEquals(reverse_url, '/uds-test/room/test%room.ical')363 self.assertEquals(reverse_url, '/uds-test/room/test%room.ical')
364364
365 def test_room_name_with_plus_sign(self):
366 room = factory.make_one(Room, summit=self.summit, name='test.room')
367
368 rev_args = ['uds-test', 'test+room']
369 reverse_url = reverse('summit.schedule.views.by_room', args=rev_args)
370 self.assertEquals(reverse_url, '/uds-test/test+room/')
371
372 reverse_url = reverse('summit.schedule.views.room_ical', args=rev_args)
373 self.assertEquals(reverse_url, '/uds-test/room/test+room.ical')
374
365 def test_track_name_with_percent(self):375 def test_track_name_with_percent(self):
366 ''' Test the following Track urlconfs376 ''' Test the following Track urlconfs
367 (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[\.\w-]+)/$', 'by_track'),377 (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[\.\w-]+)/$', 'by_track'),
@@ -375,7 +385,17 @@
375385
376 reverse_url = reverse('summit.schedule.views.track_ical', args=rev_args)386 reverse_url = reverse('summit.schedule.views.track_ical', args=rev_args)
377 self.assertEquals(reverse_url, '/uds-test/track/test%track.ical')387 self.assertEquals(reverse_url, '/uds-test/track/test%track.ical')
378 388
389 def test_track_name_with_plus_sign(self):
390 track = factory.make_one(Track, summit=self.summit, slug='test.track')
391
392 rev_args = ['uds-test', 'test+track']
393 reverse_url = reverse('summit.schedule.views.by_track', args=rev_args)
394 self.assertEquals(reverse_url, '/uds-test/track/test+track/')
395
396 reverse_url = reverse('summit.schedule.views.track_ical', args=rev_args)
397 self.assertEquals(reverse_url, '/uds-test/track/test+track.ical')
398
379 def test_participant_name_with_percent(self):399 def test_participant_name_with_percent(self):
380 ''' Test the following User urlconf400 ''' Test the following User urlconf
381 (r'^(?P<summit_name>[\w-]+)/participant/(?P<username>[\.\w-]+)\.ical$', 'user_ical'),401 (r'^(?P<summit_name>[\w-]+)/participant/(?P<username>[\.\w-]+)\.ical$', 'user_ical'),
@@ -385,7 +405,14 @@
385 rev_args = ['uds-test', 'test%user']405 rev_args = ['uds-test', 'test%user']
386 reverse_url = reverse('summit.schedule.views.user_ical', args=rev_args)406 reverse_url = reverse('summit.schedule.views.user_ical', args=rev_args)
387 self.assertEquals(reverse_url, '/uds-test/participant/test%user.ical')407 self.assertEquals(reverse_url, '/uds-test/participant/test%user.ical')
388 408
409 def test_participant_name_with_plus_sign(self):
410 user = factory.make_one(User, username='test.user')
411
412 rev_args = ['uds-test', 'test+user']
413 reverse_url = reverse('summit.schedule.views.user_ical', args=rev_args)
414 self.assertEquals(reverse_url, '/uds-test/participant/test+user.ical')
415
389416
390class EtherpadEditUrl(djangotest.TestCase):417class EtherpadEditUrl(djangotest.TestCase):
391418
392419
=== modified file 'summit/urls.py'
--- summit/urls.py 2011-09-19 16:26:12 +0000
+++ summit/urls.py 2011-09-19 17:09:35 +0000
@@ -64,15 +64,15 @@
6464
65 (r'^(?P<summit_name>[\w-]+)/next$', 'next_session'),65 (r'^(?P<summit_name>[\w-]+)/next$', 'next_session'),
66 (r'^(?P<summit_name>[\w-]+)/(?P<date>[\d-]+)/$', 'by_date'),66 (r'^(?P<summit_name>[\w-]+)/(?P<date>[\d-]+)/$', 'by_date'),
67 (r'^(?P<summit_name>[\w-]+)/(?P<room_name>[%\.\w-]+)/$', 'by_room'),67 (r'^(?P<summit_name>[\w-]+)/(?P<room_name>[%+\.\w-]+)/$', 'by_room'),
68 (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[%\.\w-]+)/$', 'by_track'),68 (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[%+\.\w-]+)/$', 'by_track'),
69 (r'^(?P<summit_name>[\w-]+)/meeting/(?P<meeting_id>\d+)/(?P<meeting_slug>[%+\.\w-]+)/$', 'meeting'),69 (r'^(?P<summit_name>[\w-]+)/meeting/(?P<meeting_id>\d+)/(?P<meeting_slug>[%+\.\w-]+)/$', 'meeting'),
70 (r'^(?P<summit_name>[\w-]+)\.csv$', 'csv'),70 (r'^(?P<summit_name>[\w-]+)\.csv$', 'csv'),
71 (r'^(?P<summit_name>[\w-]+)\.ical$', 'ical'),71 (r'^(?P<summit_name>[\w-]+)\.ical$', 'ical'),
72 (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/my_schedule_(?P<secret_key>[0-9a-f]{32})\.ical$', 'user_private_ical'),
73 (r'^(?P<summit_name>[\w-]+)/participant/(?P<username>[%\.\w-]+)\.ical$', 'user_ical'),73 (r'^(?P<summit_name>[\w-]+)/participant/(?P<username>[%+\.\w-]+)\.ical$', 'user_ical'),
74 (r'^(?P<summit_name>[\w-]+)/room/(?P<room_name>[%\.\w-]+).ical$', 'room_ical'),74 (r'^(?P<summit_name>[\w-]+)/room/(?P<room_name>[%+\.\w-]+).ical$', 'room_ical'),
75 (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[%\.\w-]+).ical$', 'track_ical'),75 (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[%+\.\w-]+).ical$', 'track_ical'),
76)76)
7777
78if settings.DEBUG or settings.SERVE_STATIC:78if settings.DEBUG or settings.SERVE_STATIC:

Subscribers

People subscribed via source and target branches