Skip to content

Commit 652a5ca

Browse files
committed
Rewrite NomCom test data generation slightly based on the rewritten
base test data, fix problem with form previews - Legacy-Id: 6918
1 parent 7f25469 commit 652a5ca

File tree

2 files changed

+18
-56
lines changed

2 files changed

+18
-56
lines changed

ietf/nomcom/test_data.py

Lines changed: 12 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,19 @@
66
from django.conf import settings
77

88
from ietf.utils.pipe import pipe
9+
from ietf.utils.test_data import create_person
910
from ietf.group.models import Group, Role, ChangeStateGroupEvent
1011
from ietf.person.models import Email, Person
1112
from ietf.name.models import RoleName
1213
from ietf.nomcom.models import NomCom, Position, Nominee
1314

1415
COMMUNITY_USER = 'plain'
15-
CHAIR_USER = 'chair'
16-
MEMBER_USER = 'member'
17-
SECRETARIAT_USER = 'secretariat'
16+
CHAIR_USER = 'nomcomchair'
17+
MEMBER_USER = 'nomcommember'
18+
SECRETARIAT_USER = 'secretary'
1819
EMAIL_DOMAIN = '@example.com'
1920
NOMCOM_YEAR = "2013"
2021

21-
USERS = [COMMUNITY_USER, CHAIR_USER, MEMBER_USER, SECRETARIAT_USER]
22-
2322
POSITIONS = {
2423
"GEN": "IETF Chair/Gen AD",
2524
"APP": "APP Area Director",
@@ -94,7 +93,6 @@ def check_comments(encryped, plain, privatekey_file):
9493

9594
return decrypted_comments == plain
9695

97-
9896
def nomcom_test_data():
9997
# groups
10098
group, created = Group.objects.get_or_create(name='IAB/IESG Nominating Committee 2013/2014',
@@ -107,51 +105,15 @@ def nomcom_test_data():
107105
cert_file, privatekey_file = generate_cert()
108106
nomcom.public_key.save('cert', File(open(cert_file.name, 'r')))
109107

110-
try:
111-
secretariat = Group.objects.get(acronym="secretariat")
112-
secretariat.name = u'Secretariat'
113-
secretariat.save()
114-
except Group.DoesNotExist:
115-
secretariat, created = Group.objects.get_or_create(name=u'Secretariat',
116-
acronym="secretariat",
117-
state_id="active",
118-
type_id="ietf",
119-
parent=None)
120-
# users
121-
for user in USERS:
122-
u, created = User.objects.get_or_create(username=user)
123-
if created:
124-
u.set_password(user)
125-
u.save()
126-
person, created = Person.objects.get_or_create(
127-
name=user,
128-
ascii=user,
129-
user=u)
130-
email, created = Email.objects.get_or_create(
131-
address="%s%s" % (user, EMAIL_DOMAIN),
132-
person=person)
133-
134-
if user == CHAIR_USER:
135-
role, created = RoleName.objects.get_or_create(slug="chair")
136-
Role.objects.get_or_create(name=role,
137-
group=group,
138-
person=person,
139-
email=email)
140-
if user == MEMBER_USER:
141-
role, created = RoleName.objects.get_or_create(slug="member")
142-
Role.objects.get_or_create(name=role,
143-
group=group,
144-
person=person,
145-
email=email)
146-
if user == SECRETARIAT_USER:
147-
role, created = RoleName.objects.get_or_create(slug="secr")
148-
Role.objects.create(name=role,
149-
group=secretariat,
150-
person=person,
151-
email=email)
108+
# chair and member
109+
create_person(group, "chair", username=CHAIR_USER)
110+
create_person(group, "member", username=MEMBER_USER)
111+
152112
# nominee
153-
email = Email.objects.get(person__name=COMMUNITY_USER)
154-
nominee, created = Nominee.objects.get_or_create(email=email, nomcom=nomcom)
113+
u, _ = User.objects.get_or_create(username=COMMUNITY_USER)
114+
plainman, _ = Person.objects.get_or_create(name="Plain Man", ascii="Plain Man", user=u)
115+
email, _ = Email.objects.get_or_create(address="plain@example.com", person=plainman)
116+
nominee, _ = Nominee.objects.get_or_create(email=email, nomcom=nomcom)
155117

156118
# positions
157119
for name, description in POSITIONS.iteritems():

ietf/nomcom/tests.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from ietf.nomcom.models import NomineePosition, Position, Nominee, \
2424
NomineePositionState, Feedback, FeedbackType, \
2525
Nomination
26-
from ietf.nomcom.forms import EditChairForm, EditMembersForm
26+
from ietf.nomcom.forms import EditChairForm, EditChairFormPreview, EditMembersForm
2727
from ietf.nomcom.utils import get_nomcom_by_year, get_or_create_nominee
2828
from ietf.nomcom.management.commands.send_reminders import Command, is_time_to_send
2929

@@ -285,7 +285,7 @@ def change_members(self, members):
285285
# preview
286286
self.client.post(self.edit_members_url, test_data)
287287

288-
hash = EditChairFormPreview().security_hash(None, EditMembersForm(test_data))
288+
hash = EditChairFormPreview(EditChairForm).security_hash(None, EditMembersForm(test_data))
289289
test_data.update({'hash': hash, 'stage': 2})
290290

291291
# submit
@@ -314,7 +314,7 @@ def change_chair(self, user):
314314
# preview
315315
self.client.post(self.edit_chair_url, test_data)
316316

317-
hash = EditChairFormPreview().security_hash(None, EditChairForm(test_data))
317+
hash = EditChairFormPreview(EditChairForm).security_hash(None, EditChairForm(test_data))
318318
test_data.update({'hash': hash, 'stage': 2})
319319

320320
# submit
@@ -344,7 +344,7 @@ def test_edit_nomcom_view(self):
344344
f.close()
345345
self.assertEqual(response.status_code, 200)
346346

347-
nominee = Nominee.objects.get(email__person__name=COMMUNITY_USER)
347+
nominee = Nominee.objects.get(email__person__user__username=COMMUNITY_USER)
348348
position = Position.objects.get(name='OAM')
349349

350350
comments = u'Plain text. Comments with accents äöåÄÖÅ éáíóú âêîôû ü àèìòù.'
@@ -619,7 +619,7 @@ class NomineePositionStateSaveTest(TestCase):
619619

620620
def setUp(self):
621621
nomcom_test_data()
622-
self.nominee = Nominee.objects.get(email__person__name=COMMUNITY_USER)
622+
self.nominee = Nominee.objects.get(email__person__user__username=COMMUNITY_USER)
623623

624624
def test_state_autoset(self):
625625
"""Verify state is autoset correctly"""
@@ -655,7 +655,7 @@ def setUp(self):
655655

656656
def test_encrypted_comments(self):
657657

658-
nominee = Nominee.objects.get(email__person__name=COMMUNITY_USER)
658+
nominee = Nominee.objects.get(email__person__user__username=COMMUNITY_USER)
659659
position = Position.objects.get(name='OAM')
660660
nomcom = position.nomcom
661661

0 commit comments

Comments
 (0)