From 652a5ca17a9ccde083f82d163986f10d576752f2 Mon Sep 17 00:00:00 2001 From: Ole Laursen Date: Fri, 13 Dec 2013 15:59:52 +0000 Subject: [PATCH] Rewrite NomCom test data generation slightly based on the rewritten base test data, fix problem with form previews - Legacy-Id: 6918 --- ietf/nomcom/test_data.py | 60 ++++++++-------------------------------- ietf/nomcom/tests.py | 12 ++++---- 2 files changed, 17 insertions(+), 55 deletions(-) diff --git a/ietf/nomcom/test_data.py b/ietf/nomcom/test_data.py index 96f31b739..8d7ddd294 100644 --- a/ietf/nomcom/test_data.py +++ b/ietf/nomcom/test_data.py @@ -6,20 +6,19 @@ from django.core.files import File from django.conf import settings from ietf.utils.pipe import pipe +from ietf.utils.test_data import create_person from ietf.group.models import Group, Role, ChangeStateGroupEvent from ietf.person.models import Email, Person from ietf.name.models import RoleName from ietf.nomcom.models import NomCom, Position, Nominee COMMUNITY_USER = 'plain' -CHAIR_USER = 'chair' -MEMBER_USER = 'member' -SECRETARIAT_USER = 'secretariat' +CHAIR_USER = 'nomcomchair' +MEMBER_USER = 'nomcommember' +SECRETARIAT_USER = 'secretary' EMAIL_DOMAIN = '@example.com' NOMCOM_YEAR = "2013" -USERS = [COMMUNITY_USER, CHAIR_USER, MEMBER_USER, SECRETARIAT_USER] - POSITIONS = { "GEN": "IETF Chair/Gen AD", "APP": "APP Area Director", @@ -94,7 +93,6 @@ def check_comments(encryped, plain, privatekey_file): return decrypted_comments == plain - def nomcom_test_data(): # groups group, created = Group.objects.get_or_create(name='IAB/IESG Nominating Committee 2013/2014', @@ -107,51 +105,15 @@ def nomcom_test_data(): cert_file, privatekey_file = generate_cert() nomcom.public_key.save('cert', File(open(cert_file.name, 'r'))) - try: - secretariat = Group.objects.get(acronym="secretariat") - secretariat.name = u'Secretariat' - secretariat.save() - except Group.DoesNotExist: - secretariat, created = Group.objects.get_or_create(name=u'Secretariat', - acronym="secretariat", - state_id="active", - type_id="ietf", - parent=None) - # users - for user in USERS: - u, created = User.objects.get_or_create(username=user) - if created: - u.set_password(user) - u.save() - person, created = Person.objects.get_or_create( - name=user, - ascii=user, - user=u) - email, created = Email.objects.get_or_create( - address="%s%s" % (user, EMAIL_DOMAIN), - person=person) + # chair and member + create_person(group, "chair", username=CHAIR_USER) + create_person(group, "member", username=MEMBER_USER) - if user == CHAIR_USER: - role, created = RoleName.objects.get_or_create(slug="chair") - Role.objects.get_or_create(name=role, - group=group, - person=person, - email=email) - if user == MEMBER_USER: - role, created = RoleName.objects.get_or_create(slug="member") - Role.objects.get_or_create(name=role, - group=group, - person=person, - email=email) - if user == SECRETARIAT_USER: - role, created = RoleName.objects.get_or_create(slug="secr") - Role.objects.create(name=role, - group=secretariat, - person=person, - email=email) # nominee - email = Email.objects.get(person__name=COMMUNITY_USER) - nominee, created = Nominee.objects.get_or_create(email=email, nomcom=nomcom) + u, _ = User.objects.get_or_create(username=COMMUNITY_USER) + plainman, _ = Person.objects.get_or_create(name="Plain Man", ascii="Plain Man", user=u) + email, _ = Email.objects.get_or_create(address="plain@example.com", person=plainman) + nominee, _ = Nominee.objects.get_or_create(email=email, nomcom=nomcom) # positions for name, description in POSITIONS.iteritems(): diff --git a/ietf/nomcom/tests.py b/ietf/nomcom/tests.py index 57ff36335..283d1b868 100644 --- a/ietf/nomcom/tests.py +++ b/ietf/nomcom/tests.py @@ -23,7 +23,7 @@ from ietf.nomcom.test_data import nomcom_test_data, generate_cert, check_comment from ietf.nomcom.models import NomineePosition, Position, Nominee, \ NomineePositionState, Feedback, FeedbackType, \ Nomination -from ietf.nomcom.forms import EditChairForm, EditMembersForm +from ietf.nomcom.forms import EditChairForm, EditChairFormPreview, EditMembersForm from ietf.nomcom.utils import get_nomcom_by_year, get_or_create_nominee from ietf.nomcom.management.commands.send_reminders import Command, is_time_to_send @@ -285,7 +285,7 @@ class NomcomViewsTest(TestCase): # preview self.client.post(self.edit_members_url, test_data) - hash = EditChairFormPreview().security_hash(None, EditMembersForm(test_data)) + hash = EditChairFormPreview(EditChairForm).security_hash(None, EditMembersForm(test_data)) test_data.update({'hash': hash, 'stage': 2}) # submit @@ -314,7 +314,7 @@ class NomcomViewsTest(TestCase): # preview self.client.post(self.edit_chair_url, test_data) - hash = EditChairFormPreview().security_hash(None, EditChairForm(test_data)) + hash = EditChairFormPreview(EditChairForm).security_hash(None, EditChairForm(test_data)) test_data.update({'hash': hash, 'stage': 2}) # submit @@ -344,7 +344,7 @@ class NomcomViewsTest(TestCase): f.close() self.assertEqual(response.status_code, 200) - nominee = Nominee.objects.get(email__person__name=COMMUNITY_USER) + nominee = Nominee.objects.get(email__person__user__username=COMMUNITY_USER) position = Position.objects.get(name='OAM') comments = u'Plain text. Comments with accents äöåÄÖÅ éáíóú âêîôû ü àèìòù.' @@ -619,7 +619,7 @@ class NomineePositionStateSaveTest(TestCase): def setUp(self): nomcom_test_data() - self.nominee = Nominee.objects.get(email__person__name=COMMUNITY_USER) + self.nominee = Nominee.objects.get(email__person__user__username=COMMUNITY_USER) def test_state_autoset(self): """Verify state is autoset correctly""" @@ -655,7 +655,7 @@ class FeedbackTest(TestCase): def test_encrypted_comments(self): - nominee = Nominee.objects.get(email__person__name=COMMUNITY_USER) + nominee = Nominee.objects.get(email__person__user__username=COMMUNITY_USER) position = Position.objects.get(name='OAM') nomcom = position.nomcom