|
15 | 15 | from pyquery import PyQuery |
16 | 16 | from io import StringIO, BytesIO |
17 | 17 | from bs4 import BeautifulSoup |
18 | | -from urllib.parse import urlparse |
| 18 | +from urllib.parse import urlparse, urlsplit |
19 | 19 |
|
20 | 20 | from django.urls import reverse as urlreverse |
21 | 21 | from django.conf import settings |
@@ -293,17 +293,41 @@ def test_agenda_week_view(self): |
293 | 293 | self.assertEqual(r.status_code,200) |
294 | 294 | self.assertTrue(all([x in unicontent(r) for x in ['var all_items', 'maximize', 'draw_calendar', ]])) |
295 | 295 |
|
296 | | - @override_settings(MEETING_MATERIALS_SERVE_LOCALLY=False) |
| 296 | + @override_settings(MEETING_MATERIALS_SERVE_LOCALLY=False, MEETING_DOC_HREFS = settings.MEETING_DOC_CDN_HREFS) |
297 | 297 | def test_materials_through_cdn(self): |
298 | | - meeting = make_meeting_test_data() |
299 | | - session = Session.objects.filter(meeting=meeting, group__acronym="mars").first() |
300 | | - self.write_materials_files(meeting, session) |
301 | | - for document in (session.agenda(),session.minutes(),session.slides()[0]): |
302 | | - url = urlreverse("ietf.meeting.views.materials_document", |
303 | | - kwargs=dict(num=meeting.number, document=document)) |
304 | | - r = self.client.get(url) |
305 | | - self.assertEqual(r.status_code,302) |
306 | | - self.assertEqual(r['Location'],document.get_href()) |
| 298 | + meeting = make_meeting_test_data(create_interims=True) |
| 299 | + |
| 300 | + session107 = SessionFactory(meeting__number='172',group__acronym='mars') |
| 301 | + doc = DocumentFactory.create(name='agenda-172-mars', type_id='agenda', title="Agenda", |
| 302 | + uploaded_filename="agenda-172-mars.txt", group=session107.group, rev='00', states=[('agenda','active')]) |
| 303 | + pres = SessionPresentation.objects.create(session=session107,document=doc,rev=doc.rev) |
| 304 | + session107.sessionpresentation_set.add(pres) # |
| 305 | + doc = DocumentFactory.create(name='minutes-172-mars', type_id='minutes', title="Minutes", |
| 306 | + uploaded_filename="minutes-172-mars.md", group=session107.group, rev='00', states=[('minutes','active')]) |
| 307 | + pres = SessionPresentation.objects.create(session=session107,document=doc,rev=doc.rev) |
| 308 | + session107.sessionpresentation_set.add(pres) |
| 309 | + doc = DocumentFactory.create(name='slides-172-mars-1-active', type_id='slides', title="Slideshow", |
| 310 | + uploaded_filename="slides-172-mars.txt", group=session107.group, rev='00', |
| 311 | + states=[('slides','active'), ('reuse_policy', 'single')]) |
| 312 | + pres = SessionPresentation.objects.create(session=session107,document=doc,rev=doc.rev) |
| 313 | + session107.sessionpresentation_set.add(pres) |
| 314 | + |
| 315 | + for session in ( |
| 316 | + Session.objects.filter(meeting=meeting, group__acronym="mars").first(), |
| 317 | + session107, |
| 318 | + Session.objects.filter(meeting__type_id='interim', group__acronym='mars', schedulingevent__status='sched').first(), |
| 319 | + ): |
| 320 | + self.write_materials_files(session.meeting, session) |
| 321 | + for document in (session.agenda(),session.minutes(),session.slides()[0]): |
| 322 | + url = urlreverse("ietf.meeting.views.materials_document", |
| 323 | + kwargs=dict(num=session.meeting.number, document=document)) |
| 324 | + r = self.client.get(url) |
| 325 | + if session.meeting.number.isdigit() and int(session.meeting.number)<=96: |
| 326 | + self.assertEqual(r.status_code,200) |
| 327 | + else: |
| 328 | + self.assertEqual(r.status_code,302) |
| 329 | + self.assertEqual(r['Location'],document.get_href()) |
| 330 | + self.assertNotEqual(urlsplit(r['Location'])[2],url) |
307 | 331 |
|
308 | 332 | def test_materials(self): |
309 | 333 | meeting = make_meeting_test_data() |
|
0 commit comments