Skip to content

Commit 1954fc1

Browse files
committed
Tweaked the iCalendar urls, and added a test for interim meeting iCalendar files.
- Legacy-Id: 14764
1 parent a11cdd3 commit 1954fc1

2 files changed

Lines changed: 38 additions & 6 deletions

File tree

ietf/meeting/tests_views.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1469,6 +1469,40 @@ def test_send_interim_minutes_reminder(self):
14691469
self.assertTrue('Action Required: Minutes' in outbox[-1]['Subject'])
14701470

14711471

1472+
def test_group_ical(self):
1473+
make_meeting_test_data()
1474+
meeting = Meeting.objects.filter(type='interim', session__group__acronym='mars').first()
1475+
s1 = Session.objects.filter(meeting=meeting, group__acronym="mars").first()
1476+
a1 = s1.official_timeslotassignment()
1477+
t1 = a1.timeslot
1478+
# Create an extra session
1479+
t2 = TimeSlotFactory.create(meeting=meeting, time=datetime.datetime.combine(meeting.date, datetime.time(11, 30)))
1480+
s2 = SessionFactory.create(meeting=meeting, group=s1.group, add_to_schedule=False)
1481+
SchedTimeSessAssignment.objects.create(timeslot=t2, session=s2, schedule=meeting.agenda)
1482+
#
1483+
url = urlreverse('ietf.meeting.views.ical_agenda', kwargs={'num':meeting.number, 'acronym':s1.group.acronym, })
1484+
r = self.client.get(url)
1485+
self.assertEqual(r.status_code, 200)
1486+
self.assertEqual(r.get('Content-Type'), "text/calendar")
1487+
self.assertContains(r, 'BEGIN:VEVENT')
1488+
self.assertEqual(r.content.count('UID'), 2)
1489+
self.assertContains(r, 'SUMMARY:mars - Martian Special Interest Group')
1490+
self.assertContains(r, t1.time.strftime('%Y%m%dT%H%M%S'))
1491+
self.assertContains(r, t2.time.strftime('%Y%m%dT%H%M%S'))
1492+
self.assertContains(r, 'END:VEVENT')
1493+
#
1494+
url = urlreverse('ietf.meeting.views.ical_agenda', kwargs={'num':meeting.number, 'session_id':s1.id, })
1495+
r = self.client.get(url)
1496+
self.assertEqual(r.status_code, 200)
1497+
self.assertEqual(r.get('Content-Type'), "text/calendar")
1498+
self.assertContains(r, 'BEGIN:VEVENT')
1499+
self.assertEqual(r.content.count('UID'), 1)
1500+
self.assertContains(r, 'SUMMARY:mars - Martian Special Interest Group')
1501+
self.assertContains(r, t1.time.strftime('%Y%m%dT%H%M%S'))
1502+
self.assertNotContains(r, t2.time.strftime('%Y%m%dT%H%M%S'))
1503+
self.assertContains(r, 'END:VEVENT')
1504+
1505+
14721506
class AjaxTests(TestCase):
14731507
def test_ajax_get_utc(self):
14741508
# test bad queries

ietf/meeting/urls.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
safe_for_all_meeting_types = [
1111
url(r'^session/(?P<acronym>[-a-z0-9]+)/?$', views.session_details),
12+
url(r'^session/(?P<acronym>[-a-z0-9]+)\.ics$', views.ical_agenda),
1213
url(r'^session/(?P<session_id>\d+)/drafts$', views.add_session_drafts),
1314
url(r'^session/(?P<session_id>\d+)/bluesheets$', views.upload_session_bluesheets),
1415
url(r'^session/(?P<session_id>\d+)/minutes$', views.upload_session_minutes),
@@ -17,7 +18,6 @@
1718
url(r'^session/(?P<session_id>\d+)/slides/%(name)s/order$' % settings.URL_REGEXPS, views.set_slide_order),
1819
url(r'^session/(?P<session_id>\d+)/doc/%(name)s/remove$' % settings.URL_REGEXPS, views.remove_sessionpresentation),
1920
url(r'^session/(?P<session_id>\d+)\.ics$', views.ical_agenda),
20-
url(r'^session/(?P<acronym>[-a-z0-9]+).ics$', views.ical_agenda),
2121
]
2222

2323

@@ -73,10 +73,8 @@
7373
url(r'^agenda(?P<ext>.csv)$', views.agenda),
7474
url(r'^agenda/edit$', views.edit_agenda),
7575
url(r'^requests$', views.meeting_requests),
76-
url(r'^agenda/agenda.ics$', views.ical_agenda),
77-
url(r'^agenda.ics$', views.ical_agenda),
78-
url(r'^session/(?P<session_id>\d+)\.ics$', views.ical_agenda),
79-
url(r'^session/(?P<acronym>[-a-z0-9]+).ics$', views.ical_agenda),
76+
url(r'^agenda/agenda\.ics$', views.ical_agenda),
77+
url(r'^agenda\.ics$', views.ical_agenda),
8078
url(r'^agenda.json$', views.json_agenda),
8179
url(r'^agenda/week-view(?:.html)?/?$', views.week_view),
8280
url(r'^agenda/room-view(?:.html)?/?$', views.room_view),
@@ -112,7 +110,7 @@
112110
url(r'^requests.html$', RedirectView.as_view(url='/meeting/requests', permanent=True)),
113111
url(r'^past/?$', views.past),
114112
url(r'^upcoming/?$', views.upcoming),
115-
url(r'^upcoming.ics/?$', views.upcoming_ical),
113+
url(r'^upcoming\.ics/?$', views.upcoming_ical),
116114
# Then patterns from more specific to less
117115
url(r'^(?P<num>interim-[a-z0-9-]+)/', include(type_interim_patterns)),
118116
url(r'^(?P<num>\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)),

0 commit comments

Comments
 (0)