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 effa1e2b68
This commit is contained in:
commit
469d69362c
|
@ -9,7 +9,8 @@ from pyquery import PyQuery
|
|||
from django.conf import settings
|
||||
from django.core.urlresolvers import reverse as urlreverse
|
||||
|
||||
from ietf.doc.models import Document, State, DocAlias
|
||||
from ietf.doc.models import Document, State, DocAlias, NewRevisionDocEvent
|
||||
from ietf.doc.views_material import material_presentations, edit_material_presentations
|
||||
from ietf.group.models import Group
|
||||
from ietf.meeting.models import Meeting, Session, SessionPresentation
|
||||
from ietf.name.models import SessionStatusName
|
||||
|
@ -17,6 +18,8 @@ from ietf.person.models import Person
|
|||
from ietf.utils.test_utils import TestCase, login_testing_unauthorized
|
||||
from ietf.utils.test_data import make_test_data
|
||||
|
||||
from ietf.meeting.test_data import make_meeting_test_data
|
||||
|
||||
class GroupMaterialTests(TestCase):
|
||||
def setUp(self):
|
||||
self.materials_dir = os.path.abspath("tmp-document-dir")
|
||||
|
@ -38,19 +41,11 @@ class GroupMaterialTests(TestCase):
|
|||
|
||||
group = Group.objects.create(type_id="team", acronym="testteam", name="Test Team", state_id="active")
|
||||
|
||||
doc = Document.objects.create(name="slides-testteam-test-file", rev="00", type_id="slides", group=group)
|
||||
doc = Document.objects.create(name="slides-testteam-test-file", rev="01", type_id="slides", group=group)
|
||||
doc.set_state(State.objects.get(type="slides", slug="active"))
|
||||
DocAlias.objects.create(name=doc.name, document=doc)
|
||||
|
||||
session = Session.objects.create(
|
||||
name = "session-42-mars-1",
|
||||
meeting = Meeting.objects.get(number='42'),
|
||||
group = Group.objects.get(acronym='mars'),
|
||||
status = SessionStatusName.objects.create(slug='scheduled', name='Scheduled'),
|
||||
modified = datetime.datetime.now(),
|
||||
requested_by = Person.objects.get(user__username="marschairman"),
|
||||
)
|
||||
SessionPresentation.objects.create(session=session, document=doc, rev=doc.rev)
|
||||
NewRevisionDocEvent.objects.create(doc=doc,by=Person.objects.get(name="(System)"),rev='00',type='new_revision',desc='New revision available')
|
||||
NewRevisionDocEvent.objects.create(doc=doc,by=Person.objects.get(name="(System)"),rev='01',type='new_revision',desc='New revision available')
|
||||
|
||||
return doc
|
||||
|
||||
|
@ -65,6 +60,10 @@ class GroupMaterialTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue("Slides" in r.content)
|
||||
|
||||
url = urlreverse('ietf.doc.views_material.choose_material_type', kwargs=dict(acronym='mars'))
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 404)
|
||||
|
||||
def test_upload_slides(self):
|
||||
group = Group.objects.create(type_id="team", acronym="testteam", name="Test Team", state_id="active")
|
||||
|
||||
|
@ -141,6 +140,16 @@ class GroupMaterialTests(TestCase):
|
|||
def test_revise(self):
|
||||
doc = self.create_slides()
|
||||
|
||||
session = Session.objects.create(
|
||||
name = "session-42-mars-1",
|
||||
meeting = Meeting.objects.get(number='42'),
|
||||
group = Group.objects.get(acronym='mars'),
|
||||
status = SessionStatusName.objects.create(slug='scheduled', name='Scheduled'),
|
||||
modified = datetime.datetime.now(),
|
||||
requested_by = Person.objects.get(user__username="marschairman"),
|
||||
)
|
||||
SessionPresentation.objects.create(session=session, document=doc, rev=doc.rev)
|
||||
|
||||
url = urlreverse('material_edit', kwargs=dict(name=doc.name, action="revise"))
|
||||
login_testing_unauthorized(self, "secretary", url)
|
||||
|
||||
|
@ -155,10 +164,74 @@ class GroupMaterialTests(TestCase):
|
|||
material=test_file))
|
||||
self.assertEqual(r.status_code, 302)
|
||||
doc = Document.objects.get(name=doc.name)
|
||||
self.assertEqual(doc.rev, "01")
|
||||
self.assertEqual(doc.rev, "02")
|
||||
self.assertEqual(doc.title, "New title")
|
||||
self.assertEqual(doc.get_state_slug(), "active")
|
||||
|
||||
with open(os.path.join(self.agenda_dir, "42", "slides", doc.name + "-" + doc.rev + ".txt")) as f:
|
||||
self.assertEqual(f.read(), content)
|
||||
|
||||
def test_material_presentations(self):
|
||||
doc = self.create_slides()
|
||||
meeting = make_meeting_test_data()
|
||||
meeting.session_set.filter(group__acronym='mars').update(group=doc.group)
|
||||
|
||||
url = urlreverse(material_presentations,kwargs=dict(name=doc.name))
|
||||
login_testing_unauthorized(self, "secretary", url)
|
||||
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
url = urlreverse(material_presentations,kwargs=dict(name=doc.name,seq=1))
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
when = meeting.agenda.scheduledsession_set.filter(session__group__acronym='testteam').first().timeslot.time
|
||||
mdw = when.date().isoformat()
|
||||
dow = ['mon','tue','wed','thu','fri','sat','sun'][when.weekday()]
|
||||
|
||||
for kw in [ dict(),
|
||||
dict(seq=1),
|
||||
dict(week_day=dow),
|
||||
dict(week_day=dow,seq=1),
|
||||
dict(date=mdw),
|
||||
dict(date=mdw,seq=1),
|
||||
dict(date=mdw+'-0930'),
|
||||
dict(date=mdw+'-0930',seq=1),
|
||||
]:
|
||||
kw['name'] = doc.name
|
||||
kw['acronym'] = 'testteam'
|
||||
url = urlreverse(material_presentations,kwargs=kw)
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
def test_edit_material_presentations(self):
|
||||
doc = self.create_slides()
|
||||
meeting = make_meeting_test_data()
|
||||
meeting.session_set.filter(group__acronym='mars').update(group=doc.group)
|
||||
|
||||
session = meeting.agenda.scheduledsession_set.filter(session__group__acronym='testteam').first().session
|
||||
|
||||
url = urlreverse(edit_material_presentations,kwargs=dict(name=doc.name,acronym='testteam',seq=1))
|
||||
login_testing_unauthorized(self, "secretary", url)
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
self.assertEqual(doc.sessionpresentation_set.count(),0)
|
||||
|
||||
# add the materials to a session
|
||||
r = self.client.post(url, dict(action="Save",version="00"))
|
||||
self.assertEqual(r.status_code, 302)
|
||||
self.assertEqual(doc.sessionpresentation_set.first().session , session)
|
||||
|
||||
# change the version
|
||||
r = self.client.post(url, dict(action="Save",version="01"))
|
||||
self.assertEqual(r.status_code, 302)
|
||||
self.assertEqual(doc.sessionpresentation_set.first().session , session)
|
||||
|
||||
# take the slides back off that meeting
|
||||
r = self.client.post(url, dict(action="Save",version="notpresented"))
|
||||
self.assertEqual(r.status_code, 302)
|
||||
self.assertEqual(doc.sessionpresentation_set.count(),0)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue