Rewrite NomCom test data generation slightly based on the rewritten

base test data, fix problem with form previews
 - Legacy-Id: 6918
This commit is contained in:
Ole Laursen 2013-12-13 15:59:52 +00:00
parent 7f25469c6b
commit 652a5ca17a
2 changed files with 17 additions and 55 deletions

View file

@ -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():

View file

@ -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