Skip to content

Commit 469d693

Browse files
committed
Merged in [9326] from rjsparks@nostrum.com:
Test coverage improvement for group material management. - Legacy-Id: 9331 Note: SVN reference [9326] has been migrated to Git commit effa1e2
2 parents edb7a5c + effa1e2 commit 469d693

1 file changed

Lines changed: 86 additions & 13 deletions

File tree

ietf/doc/tests_material.py

Lines changed: 86 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,17 @@
99
from django.conf import settings
1010
from django.core.urlresolvers import reverse as urlreverse
1111

12-
from ietf.doc.models import Document, State, DocAlias
12+
from ietf.doc.models import Document, State, DocAlias, NewRevisionDocEvent
13+
from ietf.doc.views_material import material_presentations, edit_material_presentations
1314
from ietf.group.models import Group
1415
from ietf.meeting.models import Meeting, Session, SessionPresentation
1516
from ietf.name.models import SessionStatusName
1617
from ietf.person.models import Person
1718
from ietf.utils.test_utils import TestCase, login_testing_unauthorized
1819
from ietf.utils.test_data import make_test_data
1920

21+
from ietf.meeting.test_data import make_meeting_test_data
22+
2023
class GroupMaterialTests(TestCase):
2124
def setUp(self):
2225
self.materials_dir = os.path.abspath("tmp-document-dir")
@@ -38,19 +41,11 @@ def create_slides(self):
3841

3942
group = Group.objects.create(type_id="team", acronym="testteam", name="Test Team", state_id="active")
4043

41-
doc = Document.objects.create(name="slides-testteam-test-file", rev="00", type_id="slides", group=group)
44+
doc = Document.objects.create(name="slides-testteam-test-file", rev="01", type_id="slides", group=group)
4245
doc.set_state(State.objects.get(type="slides", slug="active"))
4346
DocAlias.objects.create(name=doc.name, document=doc)
44-
45-
session = Session.objects.create(
46-
name = "session-42-mars-1",
47-
meeting = Meeting.objects.get(number='42'),
48-
group = Group.objects.get(acronym='mars'),
49-
status = SessionStatusName.objects.create(slug='scheduled', name='Scheduled'),
50-
modified = datetime.datetime.now(),
51-
requested_by = Person.objects.get(user__username="marschairman"),
52-
)
53-
SessionPresentation.objects.create(session=session, document=doc, rev=doc.rev)
47+
NewRevisionDocEvent.objects.create(doc=doc,by=Person.objects.get(name="(System)"),rev='00',type='new_revision',desc='New revision available')
48+
NewRevisionDocEvent.objects.create(doc=doc,by=Person.objects.get(name="(System)"),rev='01',type='new_revision',desc='New revision available')
5449

5550
return doc
5651

@@ -65,6 +60,10 @@ def test_choose_material_type(self):
6560
self.assertEqual(r.status_code, 200)
6661
self.assertTrue("Slides" in r.content)
6762

63+
url = urlreverse('ietf.doc.views_material.choose_material_type', kwargs=dict(acronym='mars'))
64+
r = self.client.get(url)
65+
self.assertEqual(r.status_code, 404)
66+
6867
def test_upload_slides(self):
6968
group = Group.objects.create(type_id="team", acronym="testteam", name="Test Team", state_id="active")
7069

@@ -141,6 +140,16 @@ def test_edit_title(self):
141140
def test_revise(self):
142141
doc = self.create_slides()
143142

143+
session = Session.objects.create(
144+
name = "session-42-mars-1",
145+
meeting = Meeting.objects.get(number='42'),
146+
group = Group.objects.get(acronym='mars'),
147+
status = SessionStatusName.objects.create(slug='scheduled', name='Scheduled'),
148+
modified = datetime.datetime.now(),
149+
requested_by = Person.objects.get(user__username="marschairman"),
150+
)
151+
SessionPresentation.objects.create(session=session, document=doc, rev=doc.rev)
152+
144153
url = urlreverse('material_edit', kwargs=dict(name=doc.name, action="revise"))
145154
login_testing_unauthorized(self, "secretary", url)
146155

@@ -155,10 +164,74 @@ def test_revise(self):
155164
material=test_file))
156165
self.assertEqual(r.status_code, 302)
157166
doc = Document.objects.get(name=doc.name)
158-
self.assertEqual(doc.rev, "01")
167+
self.assertEqual(doc.rev, "02")
159168
self.assertEqual(doc.title, "New title")
160169
self.assertEqual(doc.get_state_slug(), "active")
161170

162171
with open(os.path.join(self.agenda_dir, "42", "slides", doc.name + "-" + doc.rev + ".txt")) as f:
163172
self.assertEqual(f.read(), content)
164173

174+
def test_material_presentations(self):
175+
doc = self.create_slides()
176+
meeting = make_meeting_test_data()
177+
meeting.session_set.filter(group__acronym='mars').update(group=doc.group)
178+
179+
url = urlreverse(material_presentations,kwargs=dict(name=doc.name))
180+
login_testing_unauthorized(self, "secretary", url)
181+
182+
r = self.client.get(url)
183+
self.assertEqual(r.status_code, 200)
184+
185+
url = urlreverse(material_presentations,kwargs=dict(name=doc.name,seq=1))
186+
r = self.client.get(url)
187+
self.assertEqual(r.status_code, 200)
188+
189+
when = meeting.agenda.scheduledsession_set.filter(session__group__acronym='testteam').first().timeslot.time
190+
mdw = when.date().isoformat()
191+
dow = ['mon','tue','wed','thu','fri','sat','sun'][when.weekday()]
192+
193+
for kw in [ dict(),
194+
dict(seq=1),
195+
dict(week_day=dow),
196+
dict(week_day=dow,seq=1),
197+
dict(date=mdw),
198+
dict(date=mdw,seq=1),
199+
dict(date=mdw+'-0930'),
200+
dict(date=mdw+'-0930',seq=1),
201+
]:
202+
kw['name'] = doc.name
203+
kw['acronym'] = 'testteam'
204+
url = urlreverse(material_presentations,kwargs=kw)
205+
r = self.client.get(url)
206+
self.assertEqual(r.status_code, 200)
207+
208+
def test_edit_material_presentations(self):
209+
doc = self.create_slides()
210+
meeting = make_meeting_test_data()
211+
meeting.session_set.filter(group__acronym='mars').update(group=doc.group)
212+
213+
session = meeting.agenda.scheduledsession_set.filter(session__group__acronym='testteam').first().session
214+
215+
url = urlreverse(edit_material_presentations,kwargs=dict(name=doc.name,acronym='testteam',seq=1))
216+
login_testing_unauthorized(self, "secretary", url)
217+
r = self.client.get(url)
218+
self.assertEqual(r.status_code, 200)
219+
220+
self.assertEqual(doc.sessionpresentation_set.count(),0)
221+
222+
# add the materials to a session
223+
r = self.client.post(url, dict(action="Save",version="00"))
224+
self.assertEqual(r.status_code, 302)
225+
self.assertEqual(doc.sessionpresentation_set.first().session , session)
226+
227+
# change the version
228+
r = self.client.post(url, dict(action="Save",version="01"))
229+
self.assertEqual(r.status_code, 302)
230+
self.assertEqual(doc.sessionpresentation_set.first().session , session)
231+
232+
# take the slides back off that meeting
233+
r = self.client.post(url, dict(action="Save",version="notpresented"))
234+
self.assertEqual(r.status_code, 302)
235+
self.assertEqual(doc.sessionpresentation_set.count(),0)
236+
237+

0 commit comments

Comments
 (0)