Merged in [13230] from rjsparks@nostrum.com:
Adds scripts to create/delete a dummy nomcom to use in development environments. Fixes #2283.
- Legacy-Id: 13233
Note: SVN reference [13230] has been migrated to Git commit 0088273f5a
This commit is contained in:
commit
8e8d2c359f
24
ietf/nomcom/delete_dummy_nomcom.py
Normal file
24
ietf/nomcom/delete_dummy_nomcom.py
Normal file
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
# script for generating a dummy nomcom to use when developing nomcom related code
|
||||
|
||||
# boiler plate
|
||||
import os, sys
|
||||
import django
|
||||
import socket
|
||||
|
||||
|
||||
basedir = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), '../..'))
|
||||
sys.path.insert(0, basedir)
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ietf.settings")
|
||||
|
||||
django.setup()
|
||||
|
||||
from ietf.group.models import Group
|
||||
from ietf.person.models import User
|
||||
|
||||
if socket.gethostname().split('.')[0] in ['core3', 'ietfa', 'ietfb', 'ietfc', ]:
|
||||
raise EnvironmentError("Refusing to run tests on production server")
|
||||
|
||||
Group.objects.filter(acronym='nomcom7437').delete()
|
||||
User.objects.filter(username__in=['dummychair','dummymember','dummycandidate']).delete()
|
|
@ -137,6 +137,14 @@ class NomineeFactory(factory.DjangoModelFactory):
|
|||
person = factory.SubFactory(PersonFactory)
|
||||
email = factory.LazyAttribute(lambda obj: obj.person.email())
|
||||
|
||||
class NomineePositionFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = NomineePosition
|
||||
|
||||
position = factory.SubFactory(PositionFactory)
|
||||
nominee = factory.SubFactory(NomineeFactory)
|
||||
state_id = 'accepted'
|
||||
|
||||
class FeedbackFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = Feedback
|
||||
|
|
46
ietf/nomcom/make_dummy_nomcom.py
Normal file
46
ietf/nomcom/make_dummy_nomcom.py
Normal file
|
@ -0,0 +1,46 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
# script for generating a dummy nomcom to use when developing nomcom related code
|
||||
|
||||
# boiler plate
|
||||
import os, sys
|
||||
import django
|
||||
import socket
|
||||
|
||||
|
||||
basedir = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), '../..'))
|
||||
sys.path.insert(0, basedir)
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ietf.settings")
|
||||
|
||||
django.setup()
|
||||
|
||||
from ietf.nomcom.factories import nomcom_kwargs_for_year, NomComFactory, NomineePositionFactory, key
|
||||
from ietf.person.factories import EmailFactory
|
||||
|
||||
if socket.gethostname().split('.')[0] in ['core3', 'ietfa', 'ietfb', 'ietfc', ]:
|
||||
raise EnvironmentError("Refusing to run tests on production server")
|
||||
|
||||
nc = NomComFactory.create(**nomcom_kwargs_for_year(year=7437,
|
||||
populate_personnel=False,
|
||||
populate_positions=False))
|
||||
|
||||
e = EmailFactory(person__name=u'Dummy Chair',address=u'dummychair@example.com',person__user__username=u'dummychair',person__default_emails=False)
|
||||
e.person.user.set_password('password')
|
||||
e.person.user.save()
|
||||
nc.group.role_set.create(name_id=u'chair',person=e.person,email=e)
|
||||
|
||||
e = EmailFactory(person__name=u'Dummy Member',address=u'dummymember@example.com',person__user__username=u'dummymember',person__default_emails=False)
|
||||
e.person.user.set_password('password')
|
||||
e.person.user.save()
|
||||
nc.group.role_set.create(name_id=u'member',person=e.person,email=e)
|
||||
|
||||
|
||||
e = EmailFactory(person__name=u'Dummy Candidate',address=u'dummycandidate@example.com',person__user__username=u'dummycandidate',person__default_emails=False)
|
||||
e.person.user.set_password('password')
|
||||
e.person.user.save()
|
||||
NomineePositionFactory(nominee__nomcom=nc, nominee__person=e.person,
|
||||
position__nomcom=nc, position__name=u'Dummy Area Director',
|
||||
)
|
||||
|
||||
print key
|
||||
print "Nomcom 7437 created. The private key can also be found at any time in ietf/nomcom/factories.py. Note that it is NOT a secure key."
|
|
@ -58,8 +58,11 @@ class PersonFactory(factory.DjangoModelFactory):
|
|||
|
||||
@factory.post_generation
|
||||
def default_emails(obj, create, extracted, **kwargs): # pylint: disable=no-self-argument
|
||||
make_email = getattr(EmailFactory, 'create' if create else 'build')
|
||||
make_email(person=obj,address=obj.user.email)
|
||||
if extracted is None:
|
||||
extracted = True
|
||||
if create and extracted:
|
||||
make_email = getattr(EmailFactory, 'create' if create else 'build')
|
||||
make_email(person=obj,address=obj.user.email)
|
||||
|
||||
@factory.post_generation
|
||||
def default_photo(obj, create, extracted, **kwargs): # pylint: disable=no-self-argument
|
||||
|
@ -100,5 +103,7 @@ class EmailFactory(factory.DjangoModelFactory):
|
|||
|
||||
address = factory.Sequence(lambda n:'%s.%s_%d@%s' % ( slugify(unidecode(fake.first_name())),
|
||||
slugify(unidecode(fake.last_name())), n, fake.domain_name()))
|
||||
person = factory.SubFactory(PersonFactory)
|
||||
|
||||
active = True
|
||||
primary = False
|
||||
|
|
Loading…
Reference in a new issue