Drop the group/person/role global fixtures, the fixture loader in

Django 1.6 refuses to load them because they have dangling foreign
keys, and in rewriting them it turns out it is easier to do so in code
- so refactor the test data generation code to have a separate
function with the unchanging base data and call that from the global
fixture setup
 - Legacy-Id: 6917
This commit is contained in:
Ole Laursen 2013-12-13 15:58:36 +00:00
parent 81e5ced4ee
commit 7f25469c6b
5 changed files with 94 additions and 279 deletions

View file

@ -1,12 +0,0 @@
[
{"pk": 1, "model": "group.group", "fields": {"charter": null, "unused_states": [], "ad": null, "parent": null, "list_email": "", "acronym": "ietf", "comments": "", "list_subscribe": "", "state": "active", "time": "2012-02-26 00:21:36", "unused_tags": [], "list_archive": "", "type": "ietf", "name": "IETF"}},
{"pk": 2, "model": "group.group", "fields": {"charter": "charter-ietf-iesg", "unused_states": [], "ad": 5376, "parent": 1, "list_email": "iesg@ietf.org", "acronym": "iesg", "comments": "", "list_subscribe": "", "state": "active", "time": "2011-12-09 12:00:00", "unused_tags": [], "list_archive": "", "type": "ietf", "name": "Internet Engineering Steering Group"}},
{"pk": 3, "model": "group.group", "fields": {"charter": null, "unused_states": [81, 82, 83, 84, 85, 86, 87, 88, 1, 2, 3, 4, 5, 6, 16, 13, 21, 14, 15, 19, 20, 12, 18, 9, 10, 17, 7, 22, 23, 11, 8, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 79, 80, 77, 78], "ad": null, "parent": null, "list_email": "", "acronym": "irtf", "comments": "", "list_subscribe": "", "state": "active", "time": "2012-02-26 00:21:36", "unused_tags": ["app-min", "errata", "iesg-com", "missref", "need-sh", "ref", "rfc-rev", "via-rfc", "w-dep", "need-ed", "point", "w-expert", "ad-f-up", "w-extern", "w-part", "extpty", "w-merge", "w-review", "need-aut", "sh-f-up", "need-rev", "w-refdoc", "w-refing", "rev-wglc", "rev-ad", "rev-iesg", "sheph-u", "other"], "list_archive": "", "type": "irtf", "name": "IRTF"}},
{"pk": 4, "model": "group.group", "fields": {"charter": null, "unused_states": [], "ad": null, "parent": null, "list_email": "", "acronym": "secretariat", "comments": "", "list_subscribe": "", "state": "active", "time": "2012-02-26 00:21:36", "unused_tags": [], "list_archive": "", "type": "ietf", "name": "IETF Secretariat"}},
{"pk": 5, "model": "group.group", "fields": {"charter": null, "unused_states": [], "ad": null, "parent": null, "list_email": "", "acronym": "ise", "comments": "", "list_subscribe": "", "state": "active", "time": "2012-02-26 00:21:36", "unused_tags": [], "list_archive": "", "type": "ietf", "name": "Independent Submission Editor"}},
{"pk": 6, "model": "group.group", "fields": {"charter": null, "unused_states": [], "ad": null, "parent": null, "list_email": "", "acronym": "rsoc", "comments": "", "list_subscribe": "", "state": "active", "time": "2012-02-26 00:21:36", "unused_tags": [], "list_archive": "", "type": "ietf", "name": "RFC Series Oversight Committee"}},
{"pk": 7, "model": "group.group", "fields": {"charter": "charter-ietf-iab", "unused_states": [], "ad": 5376, "parent": 1, "list_email": "iab@iab.org", "acronym": "iab", "comments": "1st meeting at 35th IETF - Los Angeles, CA - March 1996", "list_subscribe": "", "state": "active", "time": "2011-12-09 12:00:00", "unused_tags": [], "list_archive": "", "type": "ietf", "name": "Internet Architecture Board"}},
{"pk": 9, "model": "group.group", "fields": {"charter": null, "unused_states": [], "ad": null, "parent": null, "list_email": "", "acronym": "iepg", "comments": "", "list_subscribe": "", "state": "active", "time": "2012-02-26 00:21:36", "unused_tags": [], "list_archive": "", "type": "ietf", "name": "IEPG"}},
{"pk": 1027, "model": "group.group", "fields": {"charter": null, "unused_states": [], "ad": 5376, "parent": 1008, "list_email": "", "acronym": "none", "comments": "This is here so that 'none' can be entered in, for example, idform.", "list_subscribe": "", "state": "active", "time": "2011-12-09 12:00:00", "unused_tags": [], "list_archive": "", "type": "individ", "name": "Individual Submissions"}}
]

View file

@ -1,10 +0,0 @@
[
{"pk": 314, "model": "group.role", "fields": {"person": 5376, "group": 2, "name": "chair", "email": "housley@vigilsec.com"}},
{"pk": 75, "model": "group.role", "fields": {"person": 5376, "group": 1, "name": "chair", "email": "chair@ietf.org"}},
{"pk": 76, "model": "group.role", "fields": {"person": 12620, "group": 7, "name": "chair", "email": "Bernard_Aboba@hotmail.com"}},
{"pk": 78, "model": "group.role", "fields": {"person": 112773, "group": 3, "name": "chair", "email": "lars@netapp.com"}},
{"pk": 79, "model": "group.role", "fields": {"person": 14966, "group": 1, "name": "admdir", "email": "iad@ietf.org"}},
{"pk": 80, "model": "group.role", "fields": {"person": 2853, "group": 6, "name": "chair", "email": "rsoc-chair@iab.org"}},
{"pk": 81, "model": "group.role", "fields": {"person": 6766, "group": 5, "name": "chair", "email": "rfc-ise@rfc-editor.org"}},
{"pk": 1614, "model": "group.role", "fields": {"person": 108757, "group": 4, "name": "secr", "email": "wlo@amsl.com"}}
]

View file

@ -1,45 +0,0 @@
[
{"pk":314, "model": "group.role", "fields": { "name": "chair", "group": 2, "person": 5376, "email": "housley@vigilsec.com"}},
{"pk":1614, "model": "group.role", "fields": { "name": "secr", "group": 4, "person": 108757, "email": "wlo@amsl.com"}},
{"pk":1623, "model": "group.role", "fields": { "name": "ad", "group": 1260, "person": 19177, "email": "stephen.farrell@cs.tcd.ie"}},
{"pk":1634, "model": "group.role", "fields": { "name": "ad", "group": 1008, "person": 5376, "email": "housley@vigilsec.com"}},
{"pk": 5376, "model": "person.person", "fields": { "name": "Russ Housley", "time": "2012-02-26 00:04:18", "affiliation": "Vigil Security, LLC", "user": 432, "address": "", "ascii": "Russ Housley"}},
{"pk": 6766, "model": "person.person", "fields": {"name": "Nevil Brownlee", "ascii_short": "", "time": "2012-02-26 00:04:03", "affiliation": "The University of Auckland", "user": 1464, "address": "", "ascii": "Nevil Brownlee"}},
{"pk": 8669, "model": "person.person", "fields": {"name": "Jeff T. Johnson", "ascii_short": null, "time": "2012-02-26 00:04:37", "affiliation": "RedBack Networks", "user": null, "address": "", "ascii": "Jeff T. Johnson"}},
{"pk": 14966, "model": "person.person", "fields": {"name": "Ray Pelletier", "ascii_short": null, "time": "2012-02-26 00:04:23", "affiliation": "", "user": 2208, "address": "", "ascii": "Ray Pelletier"}},
{"pk": 18321, "model": "person.person", "fields": {"name": "Pete Resnick", "ascii_short": "", "time": "2012-02-26 00:04:04", "affiliation": "QTI, a Qualcomm company", "user": 2513, "address": "", "ascii": "Pete Resnick"}},
{"pk": 19177, "model": "person.person", "fields": { "name": "Stephen Farrell", "time": "2012-02-26 00:04:11", "affiliation": "Trinity College Dublin", "user": 491, "ascii": "Stephen Farrell"}},
{"pk": 19483, "model": "person.person", "fields": { "name": "Sean Turner", "time": "2012-02-26 00:04:11", "affiliation": "IECA", "user": 492, "ascii": "Sean Turner"}},
{"pk": 21072, "model": "person.person", "fields": {"name": "Jari Arkko", "ascii_short": null, "time": "2012-02-26 00:04:23", "affiliation": "Ericsson", "user": 430, "address": "", "ascii": "Jari Arkko"}},
{"pk": 21684, "model": "person.person", "fields": {"name": "Barry Leiba", "ascii_short": "", "time": "2012-02-26 00:03:53", "affiliation": "Huawei Technologies", "user": 500, "address": "", "ascii": "Barry Leiba"}},
{"pk": 99871, "model": "person.person", "fields": { "name": "Joe Blow", "user": 99870, "address": "", "ascii": "Joe Blow"}},
{"pk": 101568, "model": "person.person", "fields": {"name": "Ron Bonica", "ascii_short": "", "time": "2012-02-26 00:04:23", "affiliation": "Juniper Networks", "user": 507, "address": "241 West Meadowland Lane\r\nSterling, Virginia 20164-1147", "ascii": "Ron Bonica"}},
{"pk": 102900, "model": "person.person", "fields": {"name": "Al C. Morton", "ascii_short": null, "time": "2012-02-26 00:03:52", "affiliation": "AT&T Labs", "user": 551, "address": "", "ascii": "Al C. Morton"}},
{"pk": 105682, "model": "person.person", "fields": {"name": "Benoit Claise", "ascii_short": "", "time": "2012-02-26 00:03:53", "affiliation": "Cisco", "user": 740, "address": "", "ascii": "Benoit Claise"}},
{"pk": 108757, "model": "person.person", "fields": {"name": "Wanda Lo", "ascii_short": null, "time": "2012-02-26 00:04:12", "affiliation": "", "user": 509, "address": "", "ascii": "Wanda Lo"}},
{"pk": 112773, "model": "person.person", "fields": {"name": "Lars Eggert", "ascii_short": "Lars Eggert", "time": "2012-02-26 00:03:59", "affiliation": "NetApp", "user": 1575, "address": "", "ascii": "Lars Eggert"}},
{"pk": "chair@ietf.org", "model": "person.email", "fields": {"active": true, "person": null, "time": "2012-02-26 00:22:27"}},
{"pk": "iab-chair@ietf.org", "model": "person.email", "fields": {"active": true, "person": null, "time": "2012-02-26 00:22:27"}},
{"pk": "nomcom-chair@ietf.org", "model": "person.email", "fields": {"active": true, "person": null, "time": "2012-02-26 00:22:42"}},
{"pk": "iad@ietf.org", "model": "person.email", "fields": {"active": true, "person": null, "time": "2012-02-26 00:22:27"}},
{"pk": "acmorton@att.com", "model": "person.email", "fields": {"active": true, "person": 102900, "time": "1970-01-01 23:59:59"}},
{"pk": "kaj@research.telcordia.com", "model": "person.email", "fields": {"active": true, "person": 3798, "time": "1970-01-01 23:59:59"}},
{"pk": "jeff@redbacknetworks.com", "model": "person.email", "fields": {"active": true, "person": 8669, "time": "1970-01-01 23:59:59"}},
{"pk": 430, "model": "auth.user", "fields": {"username": "jari.arkko@ericsson.com", "first_name": "", "last_name": "", "is_active": true, "is_superuser": false, "is_staff": false, "last_login": "2013-09-26 03:32:16", "groups": [], "user_permissions": [], "password": "sha1$229f8$5b7f80e3c40995887a57d4ee8ad3094e99789dc1", "email": "", "date_joined": "2010-01-15 00:39:01"}},
{"pk": 432, "model": "auth.user", "fields": {"username": "rhousley", "first_name": "", "last_name": "", "is_active": true, "is_superuser": false, "is_staff": false, "last_login": "2013-09-26 11:05:15", "groups": [], "user_permissions": [], "password": "", "email": "", "date_joined": "2010-01-16 14:45:18"}},
{"pk": 491, "model": "auth.user", "fields": {"username": "stephen.farrell@cs.tcd.ie", "first_name": "", "last_name": "", "is_active": true, "is_superuser": false, "is_staff": false, "last_login": "2013-09-27 12:10:15", "groups": [], "user_permissions": [], "password": "", "email": "", "date_joined": "2010-08-16 17:12:35"}},
{"pk": 492, "model": "auth.user", "fields": {"username": "tlyu@mit.edu", "first_name": "", "last_name": "", "is_active": true, "is_superuser": false, "is_staff": false, "last_login": "2012-04-26 14:08:12", "groups": [], "user_permissions": [], "password": "", "email": "", "date_joined": "2010-08-16 20:15:05"}},
{"pk": 500, "model": "auth.user", "fields": {"username": "barryleiba@computer.org", "first_name": "", "last_name": "", "is_active": true, "is_superuser": false, "is_staff": false, "last_login": "2013-09-28 11:15:05", "groups": [], "user_permissions": [], "password": "", "email": "", "date_joined": "2010-10-31 20:54:03"}},
{"pk": 507, "model": "auth.user", "fields": {"username": "rbonica@juniper.net", "first_name": "", "last_name": "", "is_active": true, "is_superuser": false, "is_staff": false, "last_login": "2013-03-14 19:50:11", "groups": [], "user_permissions": [], "password": "", "email": "", "date_joined": "2010-12-01 09:03:30"}},
{"pk": 509, "model": "auth.user", "fields": {"username": "wnl", "first_name": "", "last_name": "", "is_active": true, "is_superuser": true, "is_staff": true, "last_login": "2012-10-08 09:24:38", "groups": [], "user_permissions": [], "password": "sha1$e794c$18ae7fe83e0fa2a16350568818e5a9ef3a29930b", "email": "wlo@amsl.com", "date_joined": "2010-12-02 10:52:33"}},
{"pk": 740, "model": "auth.user", "fields": {"username": "bclaise@cisco.com", "first_name": "", "last_name": "", "is_active": true, "is_superuser": false, "is_staff": false, "last_login": "2013-09-27 01:07:42", "groups": [], "user_permissions": [], "password": "", "email": "", "date_joined": "2011-09-19 08:21:30"}},
{"pk": 1464, "model": "auth.user", "fields": {"username": "n.brownlee@auckland.ac.nz", "first_name": "", "last_name": "", "is_active": true, "is_superuser": false, "is_staff": false, "last_login": "2013-09-25 20:27:21", "groups": [], "user_permissions": [], "password": "", "email": "", "date_joined": "2012-02-22 12:14:53"}},
{"pk": 1521, "model": "auth.user", "fields": {"username": "wlo@amsl.com", "first_name": "", "last_name": "", "is_active": true, "is_superuser": false, "is_staff": false, "last_login": "2012-05-10 14:02:52", "groups": [], "user_permissions": [], "password": "", "email": "", "date_joined": "2012-02-22 12:14:58"}},
{"pk": 1575, "model": "auth.user", "fields": {"username": "lars@netapp.com", "first_name": "", "last_name": "", "is_active": true, "is_superuser": false, "is_staff": false, "last_login": "2013-09-23 06:23:57", "groups": [], "user_permissions": [], "password": "", "email": "", "date_joined": "2012-02-22 12:15:08"}},
{"pk": 2513, "model": "auth.user", "fields": {"username": "presnick@qti.qualcomm.com", "first_name": "", "last_name": "", "is_active": true, "is_superuser": false, "is_staff": false, "last_login": "2013-09-28 07:42:11", "groups": [], "user_permissions": [], "password": "sha1$58c2a$eceb1b40b4adc79f53a5c04ac552db056a93bed3", "email": "presnick@qti.qualcomm.com", "date_joined": "2012-09-24 10:16:39"}},
{"pk": 99870, "model": "auth.user", "fields": { "username": "joeblow", "is_staff": 0, "is_active": 1, "is_superuser":0}}
]

View file

@ -220,7 +220,7 @@ SERVER_MODE = 'development'
TEST_RUNNER = 'ietf.utils.test_runner.IetfTestRunner'
# Fixtures which will be loaded before testing starts
GLOBAL_TEST_FIXTURES = [ 'names','groups','persons', 'roles']
GLOBAL_TEST_FIXTURES = [ 'names','ietf.utils.test_data.make_immutable_base_data' ]
TEST_DIFF_FAILURE_DIR = "/tmp/test/failure/"

View file

@ -12,7 +12,29 @@ from ietf.person.models import *
import debug
def make_test_data():
def create_person(group, role_name, name=None, username=None, email_address=None):
"""Add person/user/email and role."""
if not name:
name = group.acronym.capitalize() + " " + role_name.capitalize()
if not username:
username = group.acronym + "-" + role_name
if not email_address:
email_address = username + "@ietf.org"
user = User.objects.create(username=username)
person = Person.objects.create(name=name, ascii=name, user=user)
Alias.objects.create(name=name, person=person)
email = Email.objects.create(address=email_address, person=person)
Role.objects.create(group=group, name_id=role_name, person=person, email=email)
def create_group(**kwargs):
return Group.objects.create(state_id="active", **kwargs)
def make_immutable_base_data():
"""Some base data (groups, etc.) that doesn't need to be modified by
tests and is thus safe to load once and for all at the start of
all tests in a run."""
# telechat dates
t = datetime.date.today()
old = TelechatDate.objects.create(date=t - datetime.timedelta(days=14)).date
@ -21,52 +43,79 @@ def make_test_data():
date3 = TelechatDate.objects.create(date=t + datetime.timedelta(days=14 * 2)).date
date4 = TelechatDate.objects.create(date=t + datetime.timedelta(days=14 * 3)).date
# groups
secretariat, created = Group.objects.get_or_create(
name="IETF Secretariat",
acronym="secretariat",
state_id="active",
type_id="ietf",
parent=None)
ietf, created = Group.objects.get_or_create(
name="IETF",
acronym="ietf",
state_id="active",
type_id="ietf",
parent=None)
# system
system_person = Person.objects.create(name="(System)", ascii="(System)", address="")
Alias.objects.create(person=system_person, name=system_person.name)
Email.objects.create(address="", person=system_person)
# XXX As given below, the group objects created doesn't match what's in the
# fixtures, so if both are used, things blow up. The code below should
# probably be updated to match what's in the fixtures, making the fixtures
# unnecessary for a number of test cases.
# high-level groups
ietf = create_group(name="IETF", acronym="ietf", type_id="ietf")
create_person(ietf, "chair")
create_person(ietf, "iad")
irtf = create_group(name="IRTF", acronym="irtf", type_id="irtf")
create_person(irtf, "chair")
secretariat = create_group(name="IETF Secretariat", acronym="secretariat", type_id="ietf")
create_person(secretariat, "secr", name="Sec Retary", username="secretary")
iab = create_group(name="Internet Architecture Board", acronym="iab", type_id="ietf", parent=ietf)
create_person(iab, "chair")
ise = create_group(name="Independent Submission Editor", acronym="ise", type_id="ietf")
create_person(ise, "chair")
rsoc = create_group(name="RFC Series Oversight Committee", acronym="rsoc", type_id="ietf")
create_person(rsoc, "chair")
iepg = create_group(name="IEPG", acronym="iepg", type_id="ietf")
create_person(iepg, "chair")
iana = create_group(name="IANA", acronym="iana", type_id="ietf")
create_person(iana, "auth", name="Ina Iana", username="iana", email_address="iana@ia.na")
rfc_editor = create_group(name="RFC Editor", acronym="rfceditor", type_id="rfcedtyp")
create_person(rfc_editor, "auth", name="Rfc Editor", username="rfc", email_address="rfc@edit.or")
iesg = create_group(name="Internet Engineering Steering Group", acronym="iesg", type_id="ietf", parent=ietf)
individ = create_group(name="Individual submissions", acronym="none", type_id="individ")
# one area
area = create_group(name="Far Future", acronym="farfut", type_id="area", parent=ietf)
create_person(area, "ad", name="Aread Irector", username="ad", email_address="aread@ietf.org")
# create a bunch of ads for swarm tests
for i in range(1, 10):
u = User.objects.create(username="ad%s" % i)
p = Person.objects.create(name="Ad No%s" % i, ascii="Ad No%s" % i, user=u)
Alias.objects.create(name=p.name, person=p)
email = Email.objects.create(address="ad%s@ietf.org" % i, person=p)
if i < 6:
# active
Role.objects.create(name_id="ad", group=area, person=p, email=email)
else:
# inactive
areahist = GroupHistory.objects.create(
group=area,
name=area.name,
acronym=area.acronym,
type_id=area.type_id,
state_id=area.state_id,
parent=area.parent
)
RoleHistory.objects.create(
name_id="ad",
group=areahist,
person=p,
email=email)
def make_test_data():
area = Group.objects.get(acronym="farfut")
ad = Person.objects.get(user__username="ad")
# irtf, created = Group.objects.get_or_create(
# name="IRTF",
# acronym="irtf",
# state_id="active",
# type_id="irtf",
# parent=None)
# for g,t,n,p in [("iab","ietf", "Internet Architecture Board",1), ("ise","ietf", "Independent Submission Editor", None), ("iesg","ietf", "Internet Engineering Steering Group", 1), ]:
# Group.objects.get_or_create(
# name=n,
# acronym=g,
# state_id="active",
# type_id=t,
# parent_id=p)
area = Group.objects.create(
name="Far Future",
acronym="farfut",
state_id="active",
type_id="area",
parent=ietf)
# individ, created = Group.objects.get_or_create(
# name="Individual submissions",
# acronym="none",
# state_id="active",
# type_id="individ",
# parent=None)
# mars WG
group = Group.objects.create(
group = Group.objects.create(
name="Martian Special Interest Group",
acronym="mars",
state_id="active",
@ -113,40 +162,6 @@ def make_test_data():
group.charter = charter
group.save()
# persons
# system
system_person, created = Person.objects.get_or_create(
# id=0, # special value
name="(System)",
ascii="(System)",
address="",
)
system_person.save()
# IANA and RFC Editor groups
iana, created = Group.objects.get_or_create(
name="IANA",
acronym="iana",
state_id="active",
type_id="ietf",
parent=None,
)
rfc_editor, created = Group.objects.get_or_create(
name="RFC Editor",
acronym="rfceditor",
state_id="active",
type_id="rfcedtyp",
parent=None,
)
# if system_person.id != 0: # work around bug in Django
# Person.objects.filter(id=system_person.id).update(id=0)
# system_person = Person.objects.get(id=0)
Alias.objects.get_or_create(person=system_person, name=system_person.name)
Email.objects.get_or_create(address="", person=system_person)
# plain IETF'er
u, created = User.objects.get_or_create(username="plain")
plainman, created = Person.objects.get_or_create(
@ -157,75 +172,9 @@ def make_test_data():
address="plain@example.com",
person=plainman)
# ad
u = User.objects.create(username="ad")
ad = p = Person.objects.create(
name="Aread Irector",
ascii="Aread Irector",
user=u)
email = Email.objects.create(
address="aread@ietf.org",
person=p)
Role.objects.create(
name_id="ad",
group=area,
person=p,
email=email)
mars_wg.ad = ad
mars_wg.save()
# create a bunch of ads for swarm tests
for i in range(1, 10):
u = User.objects.create(username="ad%s" % i)
p = Person.objects.create(
name="Ad No%s" % i,
ascii="Ad No%s" % i,
user=u)
email = Email.objects.create(
address="ad%s@ietf.org" % i,
person=p)
if i < 6:
# active
Role.objects.create(
name_id="ad",
group=area,
person=p,
email=email)
else:
areahist = GroupHistory.objects.create(
group=area,
name=area.name,
acronym=area.acronym,
type_id=area.type_id,
state_id=area.state_id,
parent=area.parent
)
RoleHistory.objects.create(
name_id="ad",
group=areahist,
person=p,
email=email)
# stream chairs
for stream in ['ietf','irtf','iab','iesg']:
u = User.objects.create( username= ("%schair"%stream) )
p = Person.objects.create(
name="%s chair"%stream,
ascii="%s chair"%stream,
user = u,
)
chairmail = Email.objects.create(
address="%schair@ietf.org"%stream,
person = p,
)
Role.objects.create(
name_id = "chair",
group = Group.objects.get(acronym=stream),
person = p,
email = chairmail,
)
# group chair
u = User.objects.create(username="marschairman")
p = Person.objects.create(
@ -260,73 +209,6 @@ def make_test_data():
email=email,
)
# secretary
u = User.objects.create(username="secretary")
p = Person.objects.create(
name="Sec Retary",
ascii="Sec Retary",
user=u)
email = Email.objects.create(
address="sec.retary@ietf.org",
person=p)
Role.objects.create(
name_id="secr",
group=secretariat,
person=p,
email=email,
)
# IANA user
u = User.objects.create(username="iana")
p = Person.objects.create(
name="Ina Iana",
ascii="Ina Iana",
user=u)
Alias.objects.create(
name=p.name,
person=p)
email = Email.objects.create(
address="iana@ia.na",
person=p)
Role.objects.create(
name_id="auth",
group=iana,
email=email,
person=p,
)
# RFC Editor user
u = User.objects.create(username="rfc")
p = Person.objects.create(
name="Rfc Editor",
ascii="Rfc Editor",
user=u)
email = Email.objects.create(
address="rfc@edit.or",
person=p)
Role.objects.create(
name_id="auth",
group=rfc_editor,
email=email,
person=p,
)
# Secretariat user
u, created = User.objects.get_or_create(id=509, username="wnl")
p, created = Person.objects.get_or_create(
name="Wanda Lo",
ascii="Wanda Lo",
user=u)
email, created = Email.objects.get_or_create(
address="wnl@amsl.com",
person=p)
Role.objects.get_or_create(
name_id="auth",
group=secretariat,
email=email,
person=p,
)
# draft
draft = Document.objects.create(
name="draft-ietf-mars-test",