Skip to content

Commit f33ecaa

Browse files
committed
Fixed a test that compared an int with a meeting number string. Changed meeting test data to use meeting number 72 instead of 42, because proceedings code gives 404 for meetings before 65. Changed a number of StringIO() to BytesIO().
- Legacy-Id: 16378
1 parent b7690fb commit f33ecaa

8 files changed

Lines changed: 65 additions & 66 deletions

File tree

ietf/doc/tests.py

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import os
55
import shutil
66
import datetime
7-
import json
87
import sys
98
import urllib.parse
109
import bibtexparser
@@ -129,9 +128,9 @@ def test_search_for_name(self):
129128
CharterFactory(group=draft.group,name='charter-ietf-mars')
130129
DocumentFactory(type_id='conflrev',name='conflict-review-imaginary-irtf-submission')
131130
DocumentFactory(type_id='statchg',name='status-change-imaginary-mid-review')
132-
DocumentFactory(type_id='agenda',name='agenda-42-mars')
133-
DocumentFactory(type_id='minutes',name='minutes-42-mars')
134-
DocumentFactory(type_id='slides',name='slides-42-mars')
131+
DocumentFactory(type_id='agenda',name='agenda-72-mars')
132+
DocumentFactory(type_id='minutes',name='minutes-72-mars')
133+
DocumentFactory(type_id='slides',name='slides-72-mars')
135134

136135
draft.save_with_history([DocEvent.objects.create(doc=draft, rev=draft.rev, type="changed_document", by=Person.objects.get(user__username="secretary"), desc="Test")])
137136

@@ -629,9 +628,9 @@ def test_document_primary_and_history_views(self):
629628
IndividualDraftFactory(name='draft-imaginary-independent-submission')
630629
ConflictReviewFactory(name='conflict-review-imaginary-irtf-submission')
631630
CharterFactory(name='charter-ietf-mars')
632-
DocumentFactory(type_id='agenda',name='agenda-42-mars')
633-
DocumentFactory(type_id='minutes',name='minutes-42-mars')
634-
DocumentFactory(type_id='slides',name='slides-42-mars-1-active')
631+
DocumentFactory(type_id='agenda',name='agenda-72-mars')
632+
DocumentFactory(type_id='minutes',name='minutes-72-mars')
633+
DocumentFactory(type_id='slides',name='slides-72-mars-1-active')
635634
statchg = DocumentFactory(type_id='statchg',name='status-change-imaginary-mid-review')
636635
statchg.set_state(State.objects.get(type_id='statchg',slug='adrev'))
637636

@@ -640,12 +639,12 @@ def test_document_primary_and_history_views(self):
640639
"conflict-review-imaginary-irtf-submission",
641640
"status-change-imaginary-mid-review",
642641
"charter-ietf-mars",
643-
"agenda-42-mars",
644-
"minutes-42-mars",
645-
"slides-42-mars-1-active",
642+
"agenda-72-mars",
643+
"minutes-72-mars",
644+
"slides-72-mars-1-active",
646645
# TODO: add
647-
#"bluesheets-42-mars-1",
648-
#"recording-42-mars-1-00",
646+
#"bluesheets-72-mars-1",
647+
#"recording-72-mars-1-00",
649648
]:
650649
doc = Document.objects.get(name=docname)
651650
# give it some history
@@ -678,7 +677,7 @@ def test_document_conflict_review(self):
678677
self.assertEqual(r.status_code, 200)
679678

680679
def test_document_material(self):
681-
MeetingFactory(type_id='ietf',number='42')
680+
MeetingFactory(type_id='ietf',number='72')
682681
mars = GroupFactory(type_id='wg',acronym='mars')
683682
marschairman = PersonFactory(user__username='marschairman')
684683
mars.role_set.create(name_id='chair',person=marschairman,email=marschairman.email())
@@ -692,8 +691,8 @@ def test_document_material(self):
692691
doc.set_state(State.objects.get(type="slides", slug="active"))
693692

694693
session = Session.objects.create(
695-
name = "session-42-mars-1",
696-
meeting = Meeting.objects.get(number='42'),
694+
name = "session-72-mars-1",
695+
meeting = Meeting.objects.get(number='72'),
697696
group = Group.objects.get(acronym='mars'),
698697
status = SessionStatusName.objects.create(slug='scheduled', name='Scheduled'),
699698
modified = datetime.datetime.now(),

ietf/meeting/test_data.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Copyright The IETF Trust 2013-2019, All Rights Reserved
12
import datetime
23

34
from django.utils.text import slugify
@@ -70,7 +71,7 @@ def make_meeting_test_data(meeting=None):
7071
#secretary = Person.objects.get(user__username="secretary") ## not used
7172

7273
if not meeting:
73-
meeting = Meeting.objects.get(number="42", type="ietf")
74+
meeting = Meeting.objects.get(number="72", type="ietf")
7475
schedule = Schedule.objects.create(meeting=meeting, owner=plainman, name="test-agenda", visible=True, public=True)
7576
unofficial_schedule = Schedule.objects.create(meeting=meeting, owner=plainman, name="test-unofficial-agenda", visible=True, public=True)
7677

@@ -157,24 +158,24 @@ def make_meeting_test_data(meeting=None):
157158
meeting.unofficial_schedule = unofficial_schedule
158159

159160

160-
doc = DocumentFactory.create(name='agenda-42-mars', type_id='agenda', title="Agenda",
161-
uploaded_filename="agenda-42-mars.txt", group=mars, rev='00', states=[('draft','active')])
161+
doc = DocumentFactory.create(name='agenda-72-mars', type_id='agenda', title="Agenda",
162+
uploaded_filename="agenda-72-mars.txt", group=mars, rev='00', states=[('draft','active')])
162163
pres = SessionPresentation.objects.create(session=mars_session,document=doc,rev=doc.rev)
163164
mars_session.sessionpresentation_set.add(pres) #
164165

165-
doc = DocumentFactory.create(name='minutes-42-mars', type_id='minutes', title="Minutes",
166-
uploaded_filename="minutes-42-mars.txt", group=mars, rev='00', states=[('minutes','active')])
166+
doc = DocumentFactory.create(name='minutes-72-mars', type_id='minutes', title="Minutes",
167+
uploaded_filename="minutes-72-mars.txt", group=mars, rev='00', states=[('minutes','active')])
167168
pres = SessionPresentation.objects.create(session=mars_session,document=doc,rev=doc.rev)
168169
mars_session.sessionpresentation_set.add(pres)
169170

170-
doc = DocumentFactory.create(name='slides-42-mars-1-active', type_id='slides', title="Slideshow",
171-
uploaded_filename="slides-42-mars.txt", group=mars, rev='00',
171+
doc = DocumentFactory.create(name='slides-72-mars-1-active', type_id='slides', title="Slideshow",
172+
uploaded_filename="slides-72-mars.txt", group=mars, rev='00',
172173
states=[('slides','active'), ('reuse_policy', 'single')])
173174
pres = SessionPresentation.objects.create(session=mars_session,document=doc,rev=doc.rev)
174175
mars_session.sessionpresentation_set.add(pres)
175176

176-
doc = DocumentFactory.create(name='slides-42-mars-2-deleted', type_id='slides',
177-
title="Bad Slideshow", uploaded_filename="slides-42-mars-2-deleted.txt", group=mars, rev='00',
177+
doc = DocumentFactory.create(name='slides-72-mars-2-deleted', type_id='slides',
178+
title="Bad Slideshow", uploaded_filename="slides-72-mars-2-deleted.txt", group=mars, rev='00',
178179
states=[('slides','deleted'), ('reuse_policy', 'single')])
179180
pres = SessionPresentation.objects.create(session=mars_session,document=doc,rev=doc.rev)
180181
mars_session.sessionpresentation_set.add(pres)

ietf/meeting/tests_api.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Copyright The IETF Trust 2013-2019, All Rights Reserved
2+
# -*- coding: utf-8 -*-
3+
24
import datetime
3-
import json
45
from urllib.parse import urlsplit
56

67
from django.urls import reverse as urlreverse
@@ -18,7 +19,7 @@
1819
class ApiTests(TestCase):
1920
def test_update_agenda(self):
2021
meeting = make_meeting_test_data()
21-
schedule = Schedule.objects.get(meeting__number=42,name="test-agenda")
22+
schedule = Schedule.objects.get(meeting__number=72,name="test-agenda")
2223
mars_session = Session.objects.filter(meeting=meeting, group__acronym="mars").first()
2324
ames_session = Session.objects.filter(meeting=meeting, group__acronym="ames").first()
2425

ietf/meeting/tests_js.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,10 @@ def login(self):
8080

8181
def testUnschedule(self):
8282

83-
self.assertEqual(SchedTimeSessAssignment.objects.filter(session__meeting__number=42,session__group__acronym='mars',schedule__name='test-agenda').count(),1)
83+
self.assertEqual(SchedTimeSessAssignment.objects.filter(session__meeting__number=72,session__group__acronym='mars',schedule__name='test-agenda').count(),1)
8484

8585
self.login()
86-
url = self.absreverse('ietf.meeting.views.edit_agenda',kwargs=dict(num='42',name='test-agenda',owner='plain@example.com'))
86+
url = self.absreverse('ietf.meeting.views.edit_agenda',kwargs=dict(num='72',name='test-agenda',owner='plain@example.com'))
8787
self.driver.get(url)
8888

8989
q = PyQuery(self.driver.page_source)
@@ -97,7 +97,7 @@ def testUnschedule(self):
9797
self.assertTrue(len(q('#sortable-list #session_1'))>0)
9898

9999
time.sleep(0.1) # The API that modifies the database runs async
100-
self.assertEqual(SchedTimeSessAssignment.objects.filter(session__meeting__number=42,session__group__acronym='mars',schedule__name='test-agenda').count(),0)
100+
self.assertEqual(SchedTimeSessAssignment.objects.filter(session__meeting__number=72,session__group__acronym='mars',schedule__name='test-agenda').count(),0)
101101

102102
@skipIf(skip_selenium, skip_message)
103103
class SlideReorderTests(StaticLiveServerTestCase):
@@ -169,5 +169,5 @@ def testReorderSlides(self):
169169
# condition_data()
170170
#
171171
# def testOpenSchedule(self):
172-
# url = urlreverse('ietf.meeting.views.edit_agenda', kwargs=dict(num='42',name='test-agenda'))
172+
# url = urlreverse('ietf.meeting.views.edit_agenda', kwargs=dict(num='72',name='test-agenda'))
173173
# r = self.client.get(url)

ietf/meeting/tests_views.py

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
# Copyright The IETF Trust 2009-2019, All Rights Reserved
22
# -*- coding: utf-8 -*-
33

4-
import json
54
import os
65
import shutil
76
import datetime
87
import urllib.parse
8+
import six
99
import random
10-
from unittest import skipIf
1110

12-
import debug # pyflakes:ignore
11+
from unittest import skipIf
12+
from mock import patch
13+
from pyquery import PyQuery
14+
from io import StringIO, BytesIO
15+
from bs4 import BeautifulSoup
1316

1417
from django.urls import reverse as urlreverse
1518
from django.conf import settings
1619
from django.contrib.auth.models import User
1720

18-
from mock import patch
19-
from pyquery import PyQuery
20-
from io import StringIO
21-
from bs4 import BeautifulSoup
21+
import debug # pyflakes:ignore
2222

2323
from ietf.doc.models import Document
2424
from ietf.group.models import Group, Role
@@ -393,9 +393,9 @@ def test_proceedings_acknowledgements(self):
393393
self.assertEqual(response.status_code, 200)
394394
self.assertIn('test acknowledgements', response.content)
395395

396-
@patch('urllib2.urlopen')
396+
@patch('six.moves.urllib.request.urlopen')
397397
def test_proceedings_attendees(self, mock_urlopen):
398-
mock_urlopen.return_value = StringIO('[{"LastName":"Smith","FirstName":"John","Company":"ABC","Country":"US"}]')
398+
mock_urlopen.return_value = BytesIO(b'[{"LastName":"Smith","FirstName":"John","Company":"ABC","Country":"US"}]')
399399
make_meeting_test_data()
400400
meeting = MeetingFactory(type_id='ietf', date=datetime.date(2016,7,14), number="96")
401401
finalize(meeting)
@@ -406,12 +406,12 @@ def test_proceedings_attendees(self, mock_urlopen):
406406
q = PyQuery(response.content)
407407
self.assertEqual(1,len(q("#id_attendees tbody tr")))
408408

409-
@patch('urllib2.urlopen')
409+
@patch('six.moves.urllib.request.urlopen')
410410
def test_proceedings_overview(self, mock_urlopen):
411411
'''Test proceedings IETF Overview page.
412412
Note: old meetings aren't supported so need to add a new meeting then test.
413413
'''
414-
mock_urlopen.return_value = StringIO('[{"LastName":"Smith","FirstName":"John","Company":"ABC","Country":"US"}]')
414+
mock_urlopen.return_value = BytesIO(b'[{"LastName":"Smith","FirstName":"John","Company":"ABC","Country":"US"}]')
415415
make_meeting_test_data()
416416
meeting = MeetingFactory(type_id='ietf', date=datetime.date(2016,7,14), number="96")
417417
finalize(meeting)
@@ -952,7 +952,7 @@ def test_upcoming(self):
952952
ames_interim = Meeting.objects.filter(date__gt=today, type='interim', session__group__acronym='ames', session__status='canceled').first()
953953
self.assertContains(r, mars_interim.number)
954954
self.assertContains(r, ames_interim.number)
955-
self.assertContains(r, 'IETF - 42')
955+
self.assertContains(r, 'IETF - 72')
956956
# cancelled session
957957
q = PyQuery(r.content)
958958
self.assertIn('CANCELLED', q('[id*="-ames"]').text())
@@ -1642,7 +1642,7 @@ def test_ajax_get_utc(self):
16421642
self.assertIn('timezone', data)
16431643
self.assertIn('time', data)
16441644
self.assertIn('utc', data)
1645-
self.assertIn('error' not, data)
1645+
self.assertNotIn('error', data)
16461646
self.assertEqual(data['utc'], '20:00')
16471647

16481648
class FloorPlanTests(TestCase):
@@ -1688,9 +1688,9 @@ def test_iphone_app_json(self):
16881688
self.assertEqual(r.status_code,200)
16891689

16901690
class FinalizeProceedingsTests(TestCase):
1691-
@patch('urllib2.urlopen')
1691+
@patch('six.moves.urllib.request.urlopen')
16921692
def test_finalize_proceedings(self, mock_urlopen):
1693-
mock_urlopen.return_value = StringIO('[{"LastName":"Smith","FirstName":"John","Company":"ABC","Country":"US"}]')
1693+
mock_urlopen.return_value = BytesIO(b'[{"LastName":"Smith","FirstName":"John","Company":"ABC","Country":"US"}]')
16941694
make_meeting_test_data()
16951695
meeting = Meeting.objects.filter(type_id='ietf').order_by('id').last()
16961696
meeting.session_set.filter(group__acronym='mars').first().sessionpresentation_set.create(document=Document.objects.filter(type='draft').first(),rev=None)
@@ -1731,8 +1731,6 @@ def crawl_materials(self, url, top):
17311731
def follow(url):
17321732
seen.add(url)
17331733
r = self.client.get(url)
1734-
if r.status_code != 200:
1735-
debug.show('url')
17361734
self.assertEqual(r.status_code, 200)
17371735
if not ('.' in url and url.rsplit('.', 1)[1] in ['tgz', 'pdf', ]):
17381736
if r.content:
@@ -1754,7 +1752,7 @@ def test_upload_bluesheets(self):
17541752
q = PyQuery(r.content)
17551753
self.assertIn('Upload', str(q("title")))
17561754
self.assertFalse(session.sessionpresentation_set.exists())
1757-
test_file = StringIO(b'%PDF-1.4\n%âãÏÓ\nthis is some text for a test')
1755+
test_file = StringIO('%PDF-1.4\n%âãÏÓ\nthis is some text for a test')
17581756
test_file.name = "not_really.pdf"
17591757
r = self.client.post(url,dict(file=test_file))
17601758
self.assertEqual(r.status_code, 302)
@@ -1789,7 +1787,7 @@ def test_upload_bluesheets_interim(self):
17891787
q = PyQuery(r.content)
17901788
self.assertIn('Upload', str(q("title")))
17911789
self.assertFalse(session.sessionpresentation_set.exists())
1792-
test_file = StringIO(b'%PDF-1.4\n%âãÏÓ\nthis is some text for a test')
1790+
test_file = StringIO('%PDF-1.4\n%âãÏÓ\nthis is some text for a test')
17931791
test_file.name = "not_really.pdf"
17941792
r = self.client.post(url,dict(file=test_file))
17951793
self.assertEqual(r.status_code, 302)

ietf/secr/meetings/tests.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ def test_blue_sheets_generate(self):
154154
def test_notifications(self):
155155
"Test Notifications"
156156
meeting = make_meeting_test_data()
157-
url = reverse('ietf.secr.meetings.views.notifications',kwargs={'meeting_id':42})
157+
url = reverse('ietf.secr.meetings.views.notifications',kwargs={'meeting_id':72})
158158
self.client.login(username="secretary", password="secretary+password")
159159
response = self.client.get(url)
160160
self.assertEqual(response.status_code, 200)
@@ -187,7 +187,7 @@ def test_notifications(self):
187187

188188
def test_meetings_rooms(self):
189189
meeting = make_meeting_test_data()
190-
url = reverse('ietf.secr.meetings.views.rooms',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
190+
url = reverse('ietf.secr.meetings.views.rooms',kwargs={'meeting_id':72,'schedule_name':'test-agenda'})
191191
self.client.login(username="secretary", password="secretary+password")
192192
response = self.client.get(url)
193193
self.assertEqual(response.status_code, 200)
@@ -213,7 +213,7 @@ def test_meetings_rooms(self):
213213

214214
def test_meetings_times(self):
215215
make_meeting_test_data()
216-
url = reverse('ietf.secr.meetings.views.times',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
216+
url = reverse('ietf.secr.meetings.views.times',kwargs={'meeting_id':72,'schedule_name':'test-agenda'})
217217
self.client.login(username="secretary", password="secretary+password")
218218
response = self.client.get(url)
219219
self.assertEqual(response.status_code, 200)
@@ -252,7 +252,7 @@ def test_meetings_times_edit(self):
252252
meeting = make_meeting_test_data()
253253
timeslot = TimeSlot.objects.filter(meeting=meeting,type='session').first()
254254
url = reverse('ietf.secr.meetings.views.times_edit',kwargs={
255-
'meeting_id':42,
255+
'meeting_id':72,
256256
'schedule_name':'test-agenda',
257257
'time':timeslot.time.strftime("%Y:%m:%d:%H:%M")
258258
})
@@ -268,7 +268,7 @@ def test_meetings_times_edit(self):
268268

269269
def test_meetings_nonsession(self):
270270
make_meeting_test_data()
271-
url = reverse('ietf.secr.meetings.views.non_session',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
271+
url = reverse('ietf.secr.meetings.views.non_session',kwargs={'meeting_id':72,'schedule_name':'test-agenda'})
272272
self.client.login(username="secretary", password="secretary+password")
273273
response = self.client.get(url)
274274
self.assertEqual(response.status_code, 200)
@@ -277,7 +277,7 @@ def test_meetings_nonsession_add_valid(self):
277277
meeting = make_meeting_test_data()
278278
room = meeting.room_set.first()
279279
group = Group.objects.get(acronym='secretariat')
280-
url = reverse('ietf.secr.meetings.views.non_session',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
280+
url = reverse('ietf.secr.meetings.views.non_session',kwargs={'meeting_id':72,'schedule_name':'test-agenda'})
281281
self.client.login(username="secretary", password="secretary+password")
282282
response = self.client.post(url, {
283283
'day':'1',
@@ -298,7 +298,7 @@ def test_meetings_nonsession_add_valid(self):
298298
def test_meetings_nonsession_add_invalid(self):
299299
make_meeting_test_data()
300300
group = Group.objects.get(acronym='secretariat')
301-
url = reverse('ietf.secr.meetings.views.non_session',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
301+
url = reverse('ietf.secr.meetings.views.non_session',kwargs={'meeting_id':72,'schedule_name':'test-agenda'})
302302
self.client.login(username="secretary", password="secretary+password")
303303
response = self.client.post(url, {
304304
'day':'1',
@@ -316,8 +316,8 @@ def test_meetings_nonsession_edit(self):
316316
meeting = make_meeting_test_data()
317317
session = meeting.session_set.exclude(name='').first() # get first non-session session
318318
timeslot = session.official_timeslotassignment().timeslot
319-
url = reverse('ietf.secr.meetings.views.non_session_edit',kwargs={'meeting_id':42,'schedule_name':meeting.agenda.name,'slot_id':timeslot.pk})
320-
redirect_url = reverse('ietf.secr.meetings.views.non_session',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
319+
url = reverse('ietf.secr.meetings.views.non_session_edit',kwargs={'meeting_id':72,'schedule_name':meeting.agenda.name,'slot_id':timeslot.pk})
320+
redirect_url = reverse('ietf.secr.meetings.views.non_session',kwargs={'meeting_id':72,'schedule_name':'test-agenda'})
321321
new_time = timeslot.time + datetime.timedelta(days=1)
322322
self.client.login(username="secretary", password="secretary+password")
323323
response = self.client.get(url)

0 commit comments

Comments
 (0)