Converted several secr apps to use factories for tests. Commit ready for merge.
- Legacy-Id: 15568
This commit is contained in:
parent
5c57cf1b91
commit
87bda66740
|
@ -4,7 +4,7 @@ import datetime
|
|||
|
||||
from django.core.files.base import ContentFile
|
||||
|
||||
from ietf.meeting.models import Meeting, Session, Schedule, TimeSlot, SessionPresentation, FloorPlan
|
||||
from ietf.meeting.models import Meeting, Session, Schedule, TimeSlot, SessionPresentation, FloorPlan, Room
|
||||
from ietf.group.factories import GroupFactory
|
||||
from ietf.person.factories import PersonFactory
|
||||
|
||||
|
@ -100,12 +100,29 @@ class ScheduleFactory(factory.DjangoModelFactory):
|
|||
name = factory.Sequence(lambda n: 'schedule_%d'%n)
|
||||
owner = factory.SubFactory(PersonFactory)
|
||||
|
||||
class RoomFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = Room
|
||||
|
||||
meeting = factory.SubFactory(MeetingFactory)
|
||||
name = factory.Faker('name')
|
||||
|
||||
|
||||
class TimeSlotFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = TimeSlot
|
||||
|
||||
meeting = factory.SubFactory(MeetingFactory)
|
||||
type_id = 'session'
|
||||
|
||||
@factory.post_generation
|
||||
def location(obj, create, extracted, **kwargs): # pylint: disable=no-self-argument
|
||||
if create:
|
||||
if extracted:
|
||||
obj.location = extracted
|
||||
else:
|
||||
obj.location = RoomFactory(meeting=obj.meeting)
|
||||
obj.save()
|
||||
|
||||
@factory.lazy_attribute
|
||||
def time(self):
|
||||
|
@ -140,4 +157,3 @@ class FloorPlanFactory(factory.DjangoModelFactory):
|
|||
), 'floorplan.jpg'
|
||||
)
|
||||
)
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ from pyquery import PyQuery
|
|||
import debug # pyflakes:ignore
|
||||
|
||||
from ietf.doc.expire import expire_draft
|
||||
from ietf.doc.factories import DocumentFactory
|
||||
from ietf.doc.factories import WgDraftFactory
|
||||
from ietf.doc.models import Document
|
||||
from ietf.meeting.factories import MeetingFactory
|
||||
from ietf.person.factories import PersonFactory
|
||||
|
@ -19,7 +19,6 @@ from ietf.person.models import Person
|
|||
from ietf.submit.models import Preapproval
|
||||
from ietf.utils.mail import outbox
|
||||
from ietf.utils.test_utils import TestCase, login_testing_unauthorized
|
||||
from ietf.utils.test_data import make_test_data
|
||||
from ietf.secr.drafts.email import get_email_initial
|
||||
|
||||
|
||||
|
@ -48,14 +47,13 @@ class SecrDraftsTestCase(TestCase):
|
|||
settings.IDSUBMIT_MANUAL_STAGING_DIR = self.saved_idsubmit_manual_staging_dir
|
||||
|
||||
def test_abstract(self):
|
||||
draft = make_test_data()
|
||||
draft = WgDraftFactory()
|
||||
url = urlreverse('ietf.secr.drafts.views.abstract', kwargs={'id':draft.name})
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_approvals(self):
|
||||
make_test_data()
|
||||
Preapproval.objects.create(name='draft-dummy',
|
||||
by=Person.objects.get(name="(System)"))
|
||||
url = urlreverse('ietf.secr.drafts.views.approvals')
|
||||
|
@ -65,7 +63,7 @@ class SecrDraftsTestCase(TestCase):
|
|||
self.assertTrue('draft-dummy' in response.content)
|
||||
|
||||
def test_edit(self):
|
||||
draft = make_test_data()
|
||||
draft = WgDraftFactory()
|
||||
url = urlreverse('ietf.secr.drafts.views.edit', kwargs={'id':draft.name})
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
response = self.client.get(url)
|
||||
|
@ -83,20 +81,22 @@ class SecrDraftsTestCase(TestCase):
|
|||
def test_get_email_initial(self):
|
||||
# Makes sure that a manual posting by the Secretariat of an I-D that is
|
||||
# in the RFC Editor Queue will result in notification of the RFC Editor
|
||||
draft = make_test_data()
|
||||
draft = WgDraftFactory()
|
||||
data = get_email_initial(draft,action='extend',input={'expiration_date': '2050-01-01'})
|
||||
self.assertTrue('Extension of Expiration Date' in data['subject'])
|
||||
|
||||
def test_makerfc(self):
|
||||
draft = make_test_data()
|
||||
draft = WgDraftFactory(intended_std_level_id='ps')
|
||||
url = urlreverse('ietf.secr.drafts.views.edit', kwargs={'id':draft.name})
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
# It's not clear what this is testing. Was there supposed to be a POST here?
|
||||
self.assertTrue(draft.intended_std_level)
|
||||
|
||||
def test_search(self):
|
||||
draft = make_test_data()
|
||||
WgDraftFactory() # Test exercises branch that requires >1 doc found
|
||||
draft = WgDraftFactory()
|
||||
url = urlreverse('ietf.secr.drafts.views.search')
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
response = self.client.get(url)
|
||||
|
@ -108,14 +108,14 @@ class SecrDraftsTestCase(TestCase):
|
|||
self.assertTrue(draft.name in response.content)
|
||||
|
||||
def test_view(self):
|
||||
draft = make_test_data()
|
||||
draft = WgDraftFactory()
|
||||
url = urlreverse('ietf.secr.drafts.views.view', kwargs={'id':draft.name})
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_author_delete(self):
|
||||
draft = make_test_data()
|
||||
draft = WgDraftFactory(authors=PersonFactory.create_batch(2))
|
||||
author = draft.documentauthor_set.first()
|
||||
id = author.id
|
||||
url = urlreverse('ietf.secr.drafts.views.author_delete', kwargs={'id':draft.name, 'oid':id})
|
||||
|
@ -128,7 +128,7 @@ class SecrDraftsTestCase(TestCase):
|
|||
self.assertFalse(draft.documentauthor_set.filter(id=id))
|
||||
|
||||
def test_resurrect(self):
|
||||
draft = make_test_data()
|
||||
draft = WgDraftFactory()
|
||||
path = os.path.join(self.repository_dir, draft.filename_with_rev())
|
||||
with open(path, 'w') as file:
|
||||
file.write('test')
|
||||
|
@ -164,7 +164,7 @@ class SecrDraftsTestCase(TestCase):
|
|||
self.assertEqual(recv['Subject'], subject)
|
||||
|
||||
def test_extend(self):
|
||||
draft = make_test_data()
|
||||
draft = WgDraftFactory()
|
||||
url = urlreverse('ietf.secr.drafts.views.extend', kwargs={'id':draft.name})
|
||||
email_url = urlreverse('ietf.secr.drafts.views.email', kwargs={'id':draft.name})
|
||||
confirm_url = urlreverse('ietf.secr.drafts.views.confirm', kwargs={'id':draft.name})
|
||||
|
@ -203,7 +203,7 @@ class SecrDraftsTestCase(TestCase):
|
|||
self.assertEqual(recv['Subject'], subject)
|
||||
|
||||
def test_withdraw(self):
|
||||
draft = make_test_data()
|
||||
draft = WgDraftFactory()
|
||||
url = urlreverse('ietf.secr.drafts.views.withdraw', kwargs={'id':draft.name})
|
||||
email_url = urlreverse('ietf.secr.drafts.views.email', kwargs={'id':draft.name})
|
||||
confirm_url = urlreverse('ietf.secr.drafts.views.confirm', kwargs={'id':draft.name})
|
||||
|
@ -237,7 +237,7 @@ class SecrDraftsTestCase(TestCase):
|
|||
self.assertEqual(recv['Subject'], subject)
|
||||
|
||||
def test_authors(self):
|
||||
draft = DocumentFactory()
|
||||
draft = WgDraftFactory()
|
||||
person = PersonFactory()
|
||||
url = urlreverse('ietf.secr.drafts.views.authors',kwargs={'id':draft.name})
|
||||
login_testing_unauthorized(self, "secretary", url)
|
||||
|
|
|
@ -3,23 +3,25 @@ from django.urls import reverse
|
|||
from ietf.utils.test_utils import TestCase
|
||||
from ietf.group.models import Group
|
||||
from ietf.secr.groups.forms import get_parent_group_choices
|
||||
from ietf.group.factories import GroupFactory
|
||||
from ietf.group.factories import GroupFactory, RoleFactory
|
||||
from ietf.meeting.factories import MeetingFactory
|
||||
from ietf.person.factories import PersonFactory
|
||||
from ietf.person.models import Person
|
||||
from ietf.utils.test_data import make_test_data
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
class GroupsTest(TestCase):
|
||||
def test_get_parent_group_choices(self):
|
||||
make_test_data()
|
||||
GroupFactory(type_id='area')
|
||||
choices = get_parent_group_choices()
|
||||
area = Group.objects.filter(type='area',state='active').first()
|
||||
# This is opaque. Can it be rewritten to be more self-documenting?
|
||||
self.assertEqual(choices[0][1][0][0],area.id)
|
||||
|
||||
# ------- Test Search -------- #
|
||||
def test_search(self):
|
||||
"Test Search"
|
||||
make_test_data()
|
||||
group = Group.objects.all()[0]
|
||||
MeetingFactory(type_id='ietf')
|
||||
group = GroupFactory()
|
||||
url = reverse('ietf.secr.groups.views.search')
|
||||
post_data = {'group_acronym':group.acronym,'submit':'Search'}
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
|
@ -50,9 +52,8 @@ class GroupsTest(TestCase):
|
|||
self.assertTrue('This field is required' in response.content)
|
||||
|
||||
def test_add_group_dupe(self):
|
||||
make_test_data()
|
||||
group = Group.objects.all()[0]
|
||||
area = Group.objects.filter(type='area')[0]
|
||||
group = GroupFactory()
|
||||
area = GroupFactory(type_id='area')
|
||||
url = reverse('ietf.secr.groups.views.add')
|
||||
post_data = {'acronym':group.acronym,
|
||||
'name':'Test Group',
|
||||
|
@ -69,8 +70,7 @@ class GroupsTest(TestCase):
|
|||
self.assertTrue('Group with this Acronym already exists' in response.content)
|
||||
|
||||
def test_add_group_success(self):
|
||||
make_test_data()
|
||||
area = Group.objects.filter(type='area')[0]
|
||||
area = GroupFactory(type_id='area')
|
||||
url = reverse('ietf.secr.groups.views.add')
|
||||
post_data = {'acronym':'test',
|
||||
'name':'Test Group',
|
||||
|
@ -86,8 +86,8 @@ class GroupsTest(TestCase):
|
|||
|
||||
# ------- Test View -------- #
|
||||
def test_view(self):
|
||||
make_test_data()
|
||||
group = Group.objects.all()[0]
|
||||
MeetingFactory(type_id='ietf')
|
||||
group = GroupFactory()
|
||||
url = reverse('ietf.secr.groups.views.view', kwargs={'acronym':group.acronym})
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
response = self.client.get(url)
|
||||
|
@ -95,10 +95,10 @@ class GroupsTest(TestCase):
|
|||
|
||||
# ------- Test Edit -------- #
|
||||
def test_edit_valid(self):
|
||||
make_test_data()
|
||||
group = Group.objects.filter(acronym='mars')[0]
|
||||
area = Group.objects.filter(acronym='farfut')[0]
|
||||
ad = Person.objects.get(name='Areað Irector')
|
||||
group = GroupFactory()
|
||||
area = GroupFactory(type_id='area')
|
||||
ad = Person.objects.get(name='Areað Irector')
|
||||
MeetingFactory(type_id='ietf')
|
||||
url = reverse('ietf.secr.groups.views.edit', kwargs={'acronym':group.acronym})
|
||||
target = reverse('ietf.secr.groups.views.view', kwargs={'acronym':group.acronym})
|
||||
post_data = {'acronym':group.acronym,
|
||||
|
@ -116,9 +116,9 @@ class GroupsTest(TestCase):
|
|||
self.assertTrue('changed successfully' in response.content)
|
||||
|
||||
def test_edit_non_wg_group(self):
|
||||
make_test_data()
|
||||
parent_sdo = GroupFactory.create(type_id='sdo',state_id='active')
|
||||
child_sdo = GroupFactory.create(type_id='sdo',state_id='active',parent=parent_sdo)
|
||||
MeetingFactory(type_id='ietf')
|
||||
url = reverse('ietf.secr.groups.views.edit', kwargs={'acronym':child_sdo.acronym})
|
||||
target = reverse('ietf.secr.groups.views.view', kwargs={'acronym':child_sdo.acronym})
|
||||
post_data = {'acronym':child_sdo.acronym,
|
||||
|
@ -137,9 +137,8 @@ class GroupsTest(TestCase):
|
|||
|
||||
# ------- Test People -------- #
|
||||
def test_people_delete(self):
|
||||
make_test_data()
|
||||
group = Group.objects.filter(acronym='mars')[0]
|
||||
role = group.role_set.all()[0]
|
||||
role = RoleFactory(name_id='member')
|
||||
group = role.group
|
||||
id = role.id
|
||||
url = reverse('ietf.secr.groups.views.delete_role', kwargs={'acronym':group.acronym,'id':role.id})
|
||||
target = reverse('ietf.secr.groups.views.people', kwargs={'acronym':group.acronym})
|
||||
|
@ -151,9 +150,8 @@ class GroupsTest(TestCase):
|
|||
self.assertFalse(group.role_set.filter(id=id))
|
||||
|
||||
def test_people_add(self):
|
||||
make_test_data()
|
||||
person = Person.objects.get(name='Areað Irector')
|
||||
group = Group.objects.filter(acronym='mars')[0]
|
||||
person = PersonFactory()
|
||||
group = GroupFactory()
|
||||
url = reverse('ietf.secr.groups.views.people', kwargs={'acronym':group.acronym})
|
||||
post_data = {'group_acronym':group.acronym,
|
||||
'name':'chair',
|
||||
|
|
|
@ -7,11 +7,10 @@ from django.conf import settings
|
|||
from django.urls import reverse
|
||||
|
||||
from ietf.doc.models import Document
|
||||
from ietf.group.models import Group
|
||||
from ietf.meeting.models import Session, TimeSlot, SchedTimeSessAssignment
|
||||
from ietf.meeting.test_data import make_meeting_test_data
|
||||
from ietf.group.factories import RoleFactory
|
||||
from ietf.meeting.models import SchedTimeSessAssignment
|
||||
from ietf.meeting.factories import MeetingFactory, SessionFactory
|
||||
from ietf.name.models import SessionStatusName
|
||||
from ietf.utils.test_data import make_test_data
|
||||
from ietf.utils.test_utils import TestCase
|
||||
from ietf.utils.mail import outbox
|
||||
|
||||
|
@ -26,7 +25,8 @@ SECR_USER='secretary'
|
|||
class ProceedingsTestCase(TestCase):
|
||||
def test_main(self):
|
||||
"Main Test"
|
||||
make_test_data()
|
||||
MeetingFactory(type_id='ietf')
|
||||
RoleFactory(name_id='chair',person__user__username='marschairman')
|
||||
url = reverse('ietf.secr.proceedings.views.main')
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
response = self.client.get(url)
|
||||
|
@ -41,8 +41,8 @@ class ProceedingsTestCase(TestCase):
|
|||
class VideoRecordingTestCase(TestCase):
|
||||
|
||||
def test_get_session(self):
|
||||
meeting = make_meeting_test_data()
|
||||
session = Session.objects.filter(meeting=meeting, group__acronym='mars').first()
|
||||
session = SessionFactory()
|
||||
meeting = session.meeting
|
||||
number = meeting.number
|
||||
name = session.group.acronym
|
||||
date = session.official_timeslotassignment().timeslot.time.strftime('%Y%m%d')
|
||||
|
@ -69,20 +69,16 @@ class RecordingTestCase(TestCase):
|
|||
settings.MEETING_RECORDINGS_DIR = self.saved_meeting_recordings_dir
|
||||
|
||||
def test_page(self):
|
||||
meeting = make_meeting_test_data()
|
||||
meeting = MeetingFactory(type_id='ietf')
|
||||
url = reverse('ietf.secr.proceedings.views.recording', kwargs={'meeting_num':meeting.number})
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_post(self):
|
||||
meeting = make_meeting_test_data()
|
||||
group = Group.objects.get(acronym='mars')
|
||||
session = Session.objects.filter(meeting=meeting,group=group).first()
|
||||
# explicitly set to scheduled for this test
|
||||
status = SessionStatusName.objects.get(slug='sched')
|
||||
session.status = status
|
||||
session.save()
|
||||
session = SessionFactory(status_id='sched',meeting__type_id='ietf')
|
||||
meeting = session.meeting
|
||||
group = session.group
|
||||
url = reverse('ietf.secr.proceedings.views.recording', kwargs={'meeting_num':meeting.number})
|
||||
data = dict(group=group.acronym,external_url='http://youtube.com/xyz',session=session.pk)
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
|
@ -99,12 +95,8 @@ class RecordingTestCase(TestCase):
|
|||
self.assertTrue(external_url in response.content)
|
||||
|
||||
def test_import_audio_files(self):
|
||||
meeting = make_meeting_test_data()
|
||||
group = Group.objects.get(acronym='mars')
|
||||
session = Session.objects.filter(meeting=meeting,group=group).first()
|
||||
status = SessionStatusName.objects.get(slug='sched')
|
||||
session.status = status
|
||||
session.save()
|
||||
session = SessionFactory(status_id='sched',meeting__type_id='ietf')
|
||||
meeting = session.meeting
|
||||
timeslot = session.official_timeslotassignment().timeslot
|
||||
self.create_audio_file_for_timeslot(timeslot)
|
||||
import_audio_files(meeting)
|
||||
|
@ -126,9 +118,9 @@ class RecordingTestCase(TestCase):
|
|||
date=timeslot.time.strftime('%Y%m%d-%H%M'))
|
||||
|
||||
def test_import_audio_files_shared_timeslot(self):
|
||||
meeting = make_meeting_test_data()
|
||||
mars_session = Session.objects.filter(meeting=meeting,group__acronym='mars').first()
|
||||
ames_session = Session.objects.filter(meeting=meeting,group__acronym='ames').first()
|
||||
meeting = MeetingFactory(type_id='ietf',number='42')
|
||||
mars_session = SessionFactory(meeting=meeting,status_id='sched',group__acronym='mars')
|
||||
ames_session = SessionFactory(meeting=meeting,status_id='sched',group__acronym='ames')
|
||||
scheduled = SessionStatusName.objects.get(slug='sched')
|
||||
mars_session.status = scheduled
|
||||
mars_session.save()
|
||||
|
@ -148,15 +140,13 @@ class RecordingTestCase(TestCase):
|
|||
self.assertEqual(normalize_room_name('Rome/Venice'), 'rome_venice')
|
||||
|
||||
def test_get_timeslot_for_filename(self):
|
||||
meeting = make_meeting_test_data()
|
||||
timeslot = TimeSlot.objects.filter(meeting=meeting,type='session').first()
|
||||
session = SessionFactory(meeting__type_id='ietf')
|
||||
timeslot = session.timeslotassignments.first().timeslot
|
||||
name = self.get_filename_for_timeslot(timeslot)
|
||||
self.assertEqual(get_timeslot_for_filename(name),timeslot)
|
||||
|
||||
def test_get_or_create_recording_document(self):
|
||||
meeting = make_meeting_test_data()
|
||||
group = Group.objects.get(acronym='mars')
|
||||
session = Session.objects.filter(meeting=meeting,group=group).first()
|
||||
session = SessionFactory(meeting__type_id='ietf', meeting__number=42, group__acronym='mars')
|
||||
|
||||
# test create
|
||||
filename = 'ietf42-testroom-20000101-0800.mp3'
|
||||
|
@ -174,20 +164,19 @@ class RecordingTestCase(TestCase):
|
|||
self.assertEqual(doc,doc2)
|
||||
|
||||
def test_create_recording(self):
|
||||
meeting = make_meeting_test_data()
|
||||
group = Group.objects.get(acronym='mars')
|
||||
session = Session.objects.filter(meeting=meeting,group=group).first()
|
||||
session = SessionFactory(meeting__type_id='ietf', meeting__number=42, group__acronym='mars')
|
||||
filename = 'ietf42-testroomt-20000101-0800.mp3'
|
||||
url = settings.IETF_AUDIO_URL + 'ietf{}/{}'.format(meeting.number, filename)
|
||||
url = settings.IETF_AUDIO_URL + 'ietf{}/{}'.format(session.meeting.number, filename)
|
||||
doc = create_recording(session, url)
|
||||
self.assertEqual(doc.name,'recording-42-mars-1')
|
||||
self.assertEqual(doc.group,group)
|
||||
self.assertEqual(doc.group,session.group)
|
||||
self.assertEqual(doc.external_url,url)
|
||||
self.assertTrue(doc in session.materials.all())
|
||||
|
||||
def test_get_next_sequence(self):
|
||||
meeting = make_meeting_test_data()
|
||||
group = Group.objects.get(acronym='mars')
|
||||
session = SessionFactory(meeting__type_id='ietf', meeting__number=42, group__acronym='mars')
|
||||
meeting = session.meeting
|
||||
group = session.group
|
||||
sequence = get_next_sequence(group,meeting,'recording')
|
||||
self.assertEqual(sequence,1)
|
||||
|
||||
|
|
|
@ -2,32 +2,28 @@
|
|||
from django.urls import reverse
|
||||
from ietf.utils.test_utils import TestCase
|
||||
|
||||
from ietf.group.models import Group
|
||||
from ietf.group.factories import GroupFactory, RoleFactory
|
||||
from ietf.person.models import Person
|
||||
from ietf.utils.test_data import make_test_data
|
||||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
SECR_USER='secretary'
|
||||
|
||||
def augment_data():
|
||||
# need this for the RoleForm intialization
|
||||
Group.objects.create(acronym='dummy',name='Dummy Group',type_id='sdo')
|
||||
|
||||
class SecrRolesMainTestCase(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
GroupFactory(type_id='sdo') # need this for the RoleForm initialization
|
||||
|
||||
def test_main(self):
|
||||
"Main Test"
|
||||
augment_data()
|
||||
url = reverse('ietf.secr.roles.views.main')
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_roles_delete(self):
|
||||
make_test_data()
|
||||
augment_data()
|
||||
group = Group.objects.filter(acronym='mars')[0]
|
||||
role = group.role_set.all()[0]
|
||||
role = RoleFactory(name_id='chair',group__acronym='mars')
|
||||
group = role.group
|
||||
id = role.id
|
||||
url = reverse('ietf.secr.roles.views.delete_role', kwargs={'acronym':group.acronym,'id':role.id})
|
||||
target = reverse('ietf.secr.roles.views.main')
|
||||
|
@ -39,10 +35,8 @@ class SecrRolesMainTestCase(TestCase):
|
|||
self.assertFalse(group.role_set.filter(id=id))
|
||||
|
||||
def test_roles_add(self):
|
||||
make_test_data()
|
||||
augment_data()
|
||||
person = Person.objects.get(name='Areað Irector')
|
||||
group = Group.objects.filter(acronym='mars')[0]
|
||||
group = GroupFactory()
|
||||
url = reverse('ietf.secr.roles.views.main')
|
||||
target = reverse('ietf.secr.roles.views.main') + '?group=%s' % group.acronym
|
||||
post_data = {'group_acronym':group.acronym,
|
||||
|
@ -56,8 +50,6 @@ class SecrRolesMainTestCase(TestCase):
|
|||
self.assertTrue('added successfully' in response.content)
|
||||
|
||||
def test_roles_add_no_group(self):
|
||||
make_test_data()
|
||||
augment_data()
|
||||
person = Person.objects.get(name='Areað Irector')
|
||||
url = reverse('ietf.secr.roles.views.main')
|
||||
post_data = {'group_acronym':'',
|
||||
|
|
|
@ -5,8 +5,6 @@ import debug # pyflakes:ignore
|
|||
from ietf.utils.test_utils import TestCase
|
||||
from ietf.person.factories import PersonFactory, UserFactory
|
||||
from ietf.person.models import Person, User
|
||||
from ietf.utils.test_data import make_test_data
|
||||
|
||||
|
||||
SECR_USER='secretary'
|
||||
|
||||
|
@ -20,15 +18,13 @@ class RolodexTestCase(TestCase):
|
|||
|
||||
def test_view(self):
|
||||
"View Test"
|
||||
make_test_data()
|
||||
person = Person.objects.all()[0]
|
||||
person = PersonFactory()
|
||||
url = reverse('ietf.secr.rolodex.views.view', kwargs={'id':person.id})
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_add(self):
|
||||
make_test_data()
|
||||
url = reverse('ietf.secr.rolodex.views.add')
|
||||
add_proceed_url = reverse('ietf.secr.rolodex.views.add_proceed') + '?name=Joe+Smith'
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
|
@ -41,7 +37,7 @@ class RolodexTestCase(TestCase):
|
|||
'ascii': 'Joe Smith',
|
||||
'ascii_short': 'Joe S',
|
||||
'affiliation': 'IETF',
|
||||
'email': 'joes@exanple.com',
|
||||
'email': 'joes@example.com',
|
||||
'submit': 'Submit',
|
||||
}
|
||||
response = self.client.post(add_proceed_url, post_data)
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
from django.urls import reverse
|
||||
import datetime
|
||||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
from ietf.utils.test_utils import TestCase, unicontent
|
||||
from ietf.group.models import Group
|
||||
from ietf.meeting.helpers import get_meeting
|
||||
from ietf.meeting.models import Meeting, Session, ResourceAssociation
|
||||
from ietf.meeting.test_data import make_meeting_test_data
|
||||
from ietf.meeting.factories import SessionFactory
|
||||
from ietf.group.factories import GroupFactory, RoleFactory
|
||||
from ietf.meeting.models import Session, ResourceAssociation
|
||||
from ietf.meeting.factories import MeetingFactory, SessionFactory
|
||||
from ietf.person.models import Person
|
||||
from ietf.utils.mail import outbox, empty_outbox
|
||||
from ietf.utils.test_data import make_test_data
|
||||
|
||||
from pyquery import PyQuery
|
||||
|
||||
|
@ -17,7 +16,7 @@ SECR_USER='secretary'
|
|||
|
||||
class SreqUrlTests(TestCase):
|
||||
def test_urls(self):
|
||||
make_meeting_test_data()
|
||||
MeetingFactory(type_id='ietf',date=datetime.date.today())
|
||||
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
|
||||
|
@ -27,13 +26,16 @@ class SreqUrlTests(TestCase):
|
|||
r = self.client.get("/secr/sreq/")
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
testgroup=Group.objects.filter(type_id='wg').first()
|
||||
testgroup=GroupFactory()
|
||||
r = self.client.get("/secr/sreq/%s/new/" % testgroup.acronym)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
class SessionRequestTestCase(TestCase):
|
||||
def test_main(self):
|
||||
make_meeting_test_data()
|
||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
SessionFactory.create_batch(2, meeting=meeting, status_id='sched')
|
||||
SessionFactory.create_batch(2, meeting=meeting, status_id='unsched')
|
||||
# An additional unscheduled group comes from make_immutable_base_data
|
||||
url = reverse('ietf.secr.sreq.views.main')
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
r = self.client.get(url)
|
||||
|
@ -44,8 +46,10 @@ class SessionRequestTestCase(TestCase):
|
|||
self.assertEqual(len(sched),2)
|
||||
|
||||
def test_approve(self):
|
||||
meeting = make_meeting_test_data()
|
||||
mars = Group.objects.get(acronym='mars')
|
||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
ad = Person.objects.get(user__username='ad')
|
||||
area = RoleFactory(name_id='ad', person=ad, group__type_id='area').group
|
||||
mars = GroupFactory(parent=area, acronym='mars')
|
||||
# create session waiting for approval
|
||||
session = SessionFactory(meeting=meeting, group=mars, status_id='apprw')
|
||||
url = reverse('ietf.secr.sreq.views.approve', kwargs={'acronym':'mars'})
|
||||
|
@ -56,8 +60,10 @@ class SessionRequestTestCase(TestCase):
|
|||
self.assertEqual(session.status_id,'appr')
|
||||
|
||||
def test_cancel(self):
|
||||
meeting = make_meeting_test_data()
|
||||
mars = Group.objects.get(acronym='mars')
|
||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
ad = Person.objects.get(user__username='ad')
|
||||
area = RoleFactory(name_id='ad', person=ad, group__type_id='area').group
|
||||
mars = SessionFactory(meeting=meeting, group__parent=area, group__acronym='mars').group
|
||||
url = reverse('ietf.secr.sreq.views.cancel', kwargs={'acronym':'mars'})
|
||||
self.client.login(username="ad", password="ad+password")
|
||||
r = self.client.get(url)
|
||||
|
@ -66,7 +72,10 @@ class SessionRequestTestCase(TestCase):
|
|||
self.assertEqual(sessions[0].status_id,'deleted')
|
||||
|
||||
def test_edit(self):
|
||||
make_meeting_test_data()
|
||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
mars = RoleFactory(name_id='chair', person__user__username='marschairman', group__acronym='mars').group
|
||||
SessionFactory(meeting=meeting,group=mars)
|
||||
|
||||
url = reverse('ietf.secr.sreq.views.edit', kwargs={'acronym':'mars'})
|
||||
self.client.login(username="marschairman", password="marschairman+password")
|
||||
r = self.client.get(url)
|
||||
|
@ -82,7 +91,7 @@ class SessionRequestTestCase(TestCase):
|
|||
self.assertRedirects(r,reverse('ietf.secr.sreq.views.view', kwargs={'acronym':'mars'}))
|
||||
|
||||
def test_tool_status(self):
|
||||
make_meeting_test_data()
|
||||
MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
url = reverse('ietf.secr.sreq.views.tool_status')
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
r = self.client.get(url)
|
||||
|
@ -92,9 +101,10 @@ class SessionRequestTestCase(TestCase):
|
|||
|
||||
class SubmitRequestCase(TestCase):
|
||||
def test_submit_request(self):
|
||||
make_test_data()
|
||||
meeting = get_meeting()
|
||||
group = Group.objects.get(acronym='mars')
|
||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
ad = Person.objects.get(user__username='ad')
|
||||
area = RoleFactory(name_id='ad', person=ad, group__type_id='area').group
|
||||
group = GroupFactory(parent=area)
|
||||
session_count_before = Session.objects.filter(meeting=meeting, group=group).count()
|
||||
url = reverse('ietf.secr.sreq.views.new',kwargs={'acronym':group.acronym})
|
||||
confirm_url = reverse('ietf.secr.sreq.views.confirm',kwargs={'acronym':group.acronym})
|
||||
|
@ -121,8 +131,10 @@ class SubmitRequestCase(TestCase):
|
|||
self.assertTrue(session_count_after == session_count_before + 1)
|
||||
|
||||
def test_submit_request_invalid(self):
|
||||
make_test_data()
|
||||
group = Group.objects.get(acronym='mars')
|
||||
MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
ad = Person.objects.get(user__username='ad')
|
||||
area = RoleFactory(name_id='ad', person=ad, group__type_id='area').group
|
||||
group = GroupFactory(parent=area)
|
||||
url = reverse('ietf.secr.sreq.views.new',kwargs={'acronym':group.acronym})
|
||||
post_data = {'num_session':'2',
|
||||
'length_session1':'3600',
|
||||
|
@ -137,14 +149,17 @@ class SubmitRequestCase(TestCase):
|
|||
self.assertTrue('You must enter a length for all sessions' in unicontent(r))
|
||||
|
||||
def test_request_notification(self):
|
||||
make_test_data()
|
||||
meeting = Meeting.objects.filter(type='ietf').first()
|
||||
group = Group.objects.get(acronym='ames')
|
||||
ad = group.parent.role_set.filter(name='ad').first().person
|
||||
resource = ResourceAssociation.objects.first()
|
||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date.today())
|
||||
ad = Person.objects.get(user__username='ad')
|
||||
area = GroupFactory(type_id='area')
|
||||
RoleFactory(name_id='ad', person=ad, group=area)
|
||||
group = GroupFactory(acronym='ames', parent=area)
|
||||
RoleFactory(name_id='chair', group=group, person__user__username='ameschairman')
|
||||
resource = ResourceAssociation.objects.create(name_id='project')
|
||||
# Bit of a test data hack - the fixture now has no used resources to pick from
|
||||
resource.name.used=True
|
||||
resource.name.save()
|
||||
|
||||
url = reverse('ietf.secr.sreq.views.new',kwargs={'acronym':group.acronym})
|
||||
confirm_url = reverse('ietf.secr.sreq.views.confirm',kwargs={'acronym':group.acronym})
|
||||
len_before = len(outbox)
|
||||
|
@ -177,12 +192,14 @@ class SubmitRequestCase(TestCase):
|
|||
self.assertTrue(ad.ascii_name() in notification_payload)
|
||||
|
||||
class LockAppTestCase(TestCase):
|
||||
def setUp(self):
|
||||
self.meeting = MeetingFactory(type_id='ietf', date=datetime.date.today(),session_request_lock_message='locked')
|
||||
self.group = GroupFactory(acronym='mars')
|
||||
RoleFactory(name_id='chair', group=self.group, person__user__username='marschairman')
|
||||
SessionFactory(group=self.group,meeting=self.meeting)
|
||||
|
||||
def test_edit_request(self):
|
||||
meeting = make_meeting_test_data()
|
||||
meeting.session_request_lock_message='locked'
|
||||
meeting.save()
|
||||
group = Group.objects.get(acronym='mars')
|
||||
url = reverse('ietf.secr.sreq.views.edit',kwargs={'acronym':group.acronym})
|
||||
url = reverse('ietf.secr.sreq.views.edit',kwargs={'acronym':self.group.acronym})
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
@ -190,11 +207,7 @@ class LockAppTestCase(TestCase):
|
|||
self.assertEqual(len(q(':disabled[name="submit"]')), 1)
|
||||
|
||||
def test_view_request(self):
|
||||
meeting = make_meeting_test_data()
|
||||
meeting.session_request_lock_message='locked'
|
||||
meeting.save()
|
||||
group = Group.objects.get(acronym='mars')
|
||||
url = reverse('ietf.secr.sreq.views.view',kwargs={'acronym':group.acronym})
|
||||
url = reverse('ietf.secr.sreq.views.view',kwargs={'acronym':self.group.acronym})
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
r = self.client.get(url,follow=True)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
@ -202,11 +215,7 @@ class LockAppTestCase(TestCase):
|
|||
self.assertEqual(len(q(':disabled[name="edit"]')), 1)
|
||||
|
||||
def test_new_request(self):
|
||||
meeting = make_meeting_test_data()
|
||||
meeting.session_request_lock_message='locked'
|
||||
meeting.save()
|
||||
group = Group.objects.get(acronym='mars')
|
||||
url = reverse('ietf.secr.sreq.views.new',kwargs={'acronym':group.acronym})
|
||||
url = reverse('ietf.secr.sreq.views.new',kwargs={'acronym':self.group.acronym})
|
||||
|
||||
# try as WG Chair
|
||||
self.client.login(username="marschairman", password="marschairman+password")
|
||||
|
@ -224,8 +233,8 @@ class LockAppTestCase(TestCase):
|
|||
|
||||
class NotMeetingCase(TestCase):
|
||||
def test_not_meeting(self):
|
||||
make_meeting_test_data()
|
||||
group = Group.objects.get(acronym='mars')
|
||||
MeetingFactory(type_id='ietf',date=datetime.date.today())
|
||||
group = GroupFactory(acronym='mars')
|
||||
url = reverse('ietf.secr.sreq.views.no_session',kwargs={'acronym':group.acronym})
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
|
||||
|
|
|
@ -6,13 +6,13 @@ import debug # pyflakes:ignore
|
|||
|
||||
from django.urls import reverse
|
||||
|
||||
from ietf.doc.models import Document, State, BallotDocEvent, BallotType, BallotPositionDocEvent
|
||||
from ietf.doc.factories import WgDraftFactory, CharterFactory
|
||||
from ietf.doc.models import BallotDocEvent, BallotType, BallotPositionDocEvent
|
||||
from ietf.doc.utils import update_telechat, create_ballot_if_not_open
|
||||
from ietf.utils.test_utils import TestCase
|
||||
from ietf.iesg.models import TelechatDate
|
||||
from ietf.person.models import Person
|
||||
from ietf.secr.telechat.views import get_next_telechat_date
|
||||
from ietf.utils.test_data import make_test_data
|
||||
|
||||
SECR_USER='secretary'
|
||||
|
||||
|
@ -39,7 +39,7 @@ class SecrTelechatTestCase(TestCase):
|
|||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_doc_detail_draft(self):
|
||||
draft = make_test_data()
|
||||
draft = WgDraftFactory(states=[('draft-iesg','pub-req'),])
|
||||
ad = Person.objects.get(user__username="ad")
|
||||
create_ballot_if_not_open(None, draft, ad, 'approve')
|
||||
d = get_next_telechat_date()
|
||||
|
@ -60,7 +60,7 @@ class SecrTelechatTestCase(TestCase):
|
|||
|
||||
def test_doc_detail_draft_invalid(self):
|
||||
'''Test using a document not on telechat agenda'''
|
||||
draft = make_test_data()
|
||||
draft = WgDraftFactory(states=[('draft-iesg','pub-req'),])
|
||||
date = get_next_telechat_date().strftime('%Y-%m-%d')
|
||||
url = reverse('ietf.secr.telechat.views.doc_detail', kwargs={'date':date, 'name':draft.name})
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
|
@ -69,10 +69,8 @@ class SecrTelechatTestCase(TestCase):
|
|||
self.assertTrue('not on the Telechat agenda' in response.content)
|
||||
|
||||
def test_doc_detail_charter(self):
|
||||
make_test_data()
|
||||
by=Person.objects.get(name="(System)")
|
||||
charter = Document.objects.filter(type='charter').first()
|
||||
charter.set_state(State.objects.get(used=True, slug="intrev", type="charter"))
|
||||
charter = CharterFactory(states=[('charter','intrev')])
|
||||
last_week = datetime.date.today()-datetime.timedelta(days=7)
|
||||
BallotDocEvent.objects.create(type='created_ballot',by=by,doc=charter, rev=charter.rev,
|
||||
ballot_type=BallotType.objects.get(doc_type=charter.type,slug='r-extrev'),
|
||||
|
@ -100,10 +98,8 @@ class SecrTelechatTestCase(TestCase):
|
|||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_doc_detail_post_update_ballot(self):
|
||||
make_test_data()
|
||||
by=Person.objects.get(name="(System)")
|
||||
charter = Document.objects.filter(type='charter').first()
|
||||
charter.set_state(State.objects.get(used=True, slug="intrev", type="charter"))
|
||||
charter = CharterFactory(states=[('charter','intrev')])
|
||||
last_week = datetime.date.today()-datetime.timedelta(days=7)
|
||||
BallotDocEvent.objects.create(type='created_ballot',by=by,doc=charter, rev=charter.rev,
|
||||
ballot_type=BallotType.objects.get(doc_type=charter.type,slug='r-extrev'),
|
||||
|
@ -140,10 +136,8 @@ class SecrTelechatTestCase(TestCase):
|
|||
self.assertTrue(BallotPositionDocEvent.objects.filter(doc=charter, ad_id=13, pos__slug='noobj').exists())
|
||||
|
||||
def test_doc_detail_post_update_state(self):
|
||||
make_test_data()
|
||||
by=Person.objects.get(name="(System)")
|
||||
charter = Document.objects.filter(type='charter').first()
|
||||
charter.set_state(State.objects.get(used=True, slug="intrev", type="charter"))
|
||||
charter = CharterFactory(states=[('charter','intrev')])
|
||||
last_week = datetime.date.today()-datetime.timedelta(days=7)
|
||||
BallotDocEvent.objects.create(type='created_ballot',by=by,doc=charter, rev=charter.rev,
|
||||
ballot_type=BallotType.objects.get(doc_type=charter.type,slug='r-extrev'),
|
||||
|
|
Loading…
Reference in a new issue