cleanup make methods and update asserts

This commit is contained in:
Wayne Witzel III
2016-05-24 11:31:23 -04:00
parent bcef4a698c
commit becce311fe
2 changed files with 68 additions and 38 deletions

View File

@@ -14,9 +14,11 @@ from awx.main.models import (
Label, Label,
) )
def instance(): def instance():
return Instance.objects.get_or_create(uuid=settings.SYSTEM_UUID, primary=True, hostname="instance.example.org") return Instance.objects.get_or_create(uuid=settings.SYSTEM_UUID, primary=True, hostname="instance.example.org")
def mk_organization(name, desc, persisted=True): def mk_organization(name, desc, persisted=True):
org = Organization(name=name, description=desc) org = Organization(name=name, description=desc)
if persisted: if persisted:
@@ -24,62 +26,84 @@ def mk_organization(name, desc, persisted=True):
org.save() org.save()
return org return org
def mk_label(name, organization=None, persisted=True):
def mk_label(name, **kwargs):
label = Label(name=name, description="%s-desc".format(name)) label = Label(name=name, description="%s-desc".format(name))
organization = kwargs.get('organization')
if organization is not None: if organization is not None:
label.organization = organization label.organization = organization
if persisted: if kwargs.get('persisted', True):
label.save() label.save()
return label return label
def mk_team(name, organization=None, persisted=True):
def mk_team(name, **kwargs):
team = Team(name=name) team = Team(name=name)
organization = kwargs.get('organization')
if organization is not None: if organization is not None:
team.organization = organization team.organization = organization
if persisted: if kwargs.get('persisted', True):
instance() instance()
team.save() team.save()
return team return team
def mk_user(name, organization=None, team=None, is_superuser=False, persisted=True): def mk_user(name, **kwargs):
user = User(username=name) user = User(username=name, is_superuser=kwargs.get('is_superuser', False))
if persisted: if kwargs.get('persisted', True):
user.save() user.save()
organization = kwargs.get('organization')
if organization is not None: if organization is not None:
organization.member_role.members.add(user) organization.member_role.members.add(user)
team = kwargs.get('team')
if team is not None: if team is not None:
team.member_role.members.add(user) team.member_role.members.add(user)
return user return user
def mk_project(name, organization=None, persisted=True): def mk_project(name, **kwargs):
project = Project(name=name) project = Project(name=name)
organization = kwargs.get('organization')
if organization is not None: if organization is not None:
project.organization = organization project.organization = organization
if persisted: if kwargs.get('persisted', True):
project.save() project.save()
return project return project
def mk_credential(name, *args, **kwargs): def mk_credential(name, **kwargs):
return None cred = Credential(name=name)
cred.cloud = kwargs.get('cloud', False)
cred.kind = kwargs.get('kind', 'ssh')
if kwargs.get('persisted', True):
cred.save()
return cred
def mk_inventory(name, organization=None, persisted=True):
def mk_inventory(name, **kwargs):
inv = Inventory(name=name) inv = Inventory(name=name)
inv.organization = organization organization = kwargs.get('organization', None)
if persisted: if organization is not None:
inv.organization = organization
if kwargs.get('persisted', True):
inv.save() inv.save()
return inv return inv
def mk_job_template(name, project=None, inventory=None, credential=None, job_type='run', persisted=True): def mk_job_template(name, **kwargs):
jt = JobTemplate(name=name, job_type=job_type) jt = JobTemplate(name=name, job_type=kwargs.get('job_type', 'run'))
jt.project = project
jt.inventory = inventory jt.inventory = kwargs.get('inventory', None)
jt.credential = credential if jt.inventory is None:
if persisted: jt.ask_inventory_on_launch = True
jt.credential = kwargs.get('credential', None)
if jt.credential is None:
jt.ask_credential_on_launch = True
jt.project = kwargs.get('project', None)
if kwargs.get('persisted', True):
jt.save() jt.save()
return jt return jt
@@ -93,42 +117,47 @@ class _Mapped(object):
def all(self): def all(self):
return self.d.values() return self.d.values()
def create_job_template(name, *args, **kwargs): def create_job_template(name, **kwargs):
Objects = namedtuple("Objects", "organization, job_template, inventory, project, credential") Objects = namedtuple("Objects", "job_template, inventory, project, credential, job_type")
org = None org = None
proj = None proj = None
inv = None inv = None
cred = None cred = None
job_type = kwargs.get('job_type', 'run')
persisted = kwargs.get('persisted', True)
if 'organization' in kwargs: if 'organization' in kwargs:
org = kwargs['organization'] org = kwargs['organization']
if type(org) is not Organization: if type(org) is not Organization:
org = mk_organization(org, '%s-desc'.format(org)) org = mk_organization(org, '%s-desc'.format(org), persisted=persisted)
if 'credential' in kwargs: if 'credential' in kwargs:
cred = kwargs['credential'] cred = kwargs['credential']
if type(cred) is not Credential: if type(cred) is not Credential:
cred = mk_credential(cred) cred = mk_credential(cred, persisted=persisted)
if 'project' in kwargs: if 'project' in kwargs:
proj = kwargs['project'] proj = kwargs['project']
if type(proj) is not Project: if type(proj) is not Project:
proj = mk_project(proj, org) proj = mk_project(proj, organization=org, persisted=persisted)
if 'inventory' in kwargs: if 'inventory' in kwargs:
inv = kwargs['inventory'] inv = kwargs['inventory']
if type(inv) is not Inventory: if type(inv) is not Inventory:
inv = mk_inventory(inv, org) inv = mk_inventory(inv, organization=org, persisted=persisted)
jt = mk_job_template(name, proj, inv, cred) jt = mk_job_template(name, project=proj,
inventory=inv, credential=cred,
job_type=job_type, persisted=persisted)
return Objects(job_template=jt, return Objects(job_template=jt,
project=proj, project=proj,
inventory=inv, inventory=inv,
credential=cred) credential=cred,
job_type=job_type)
def create_organization(name, *args, **kwargs): def create_organization(name, **kwargs):
Objects = namedtuple("Objects", "organization,teams,users,superusers,projects,labels") Objects = namedtuple("Objects", "organization,teams,users,superusers,projects,labels")
org = mk_organization(name, '%s-desc'.format(name)) org = mk_organization(name, '%s-desc'.format(name))
@@ -138,20 +167,21 @@ def create_organization(name, *args, **kwargs):
teams = {} teams = {}
projects = {} projects = {}
labels = {} labels = {}
persisted = kwargs.get('persisted', True)
if 'teams' in kwargs: if 'teams' in kwargs:
for t in kwargs['teams']: for t in kwargs['teams']:
if type(t) is Team: if type(t) is Team:
teams[t.name] = t teams[t.name] = t
else: else:
teams[t] = mk_team(t, org) teams[t] = mk_team(t, organization=org, persisted=persisted)
if 'projects' in kwargs: if 'projects' in kwargs:
for p in kwargs['projects']: for p in kwargs['projects']:
if type(p) is Project: if type(p) is Project:
projects[p.name] = p projects[p.name] = p
else: else:
projects[p] = mk_project(p, org) projects[p] = mk_project(p, organization=org, persisted=persisted)
if 'superusers' in kwargs: if 'superusers' in kwargs:
# remove this duplication eventually # remove this duplication eventually
@@ -162,9 +192,9 @@ def create_organization(name, *args, **kwargs):
p1, sep, p2 = u.partition(':') p1, sep, p2 = u.partition(':')
if p2: if p2:
t = teams[p1] t = teams[p1]
superusers[p2] = mk_user(p2, org, t, True) superusers[p2] = mk_user(p2, organization=org, team=t, is_superuser=True, persisted=persisted)
else: else:
superusers[p1] = mk_user(p1, org, None, True) superusers[p1] = mk_user(p1, organization=org, team=None, is_superuser=True, persisted=persisted)
if 'users' in kwargs: if 'users' in kwargs:
# remove this duplication eventually # remove this duplication eventually
@@ -175,16 +205,16 @@ def create_organization(name, *args, **kwargs):
p1, sep, p2 = u.partition(':') p1, sep, p2 = u.partition(':')
if p2: if p2:
t = teams[p1] t = teams[p1]
users[p2] = mk_user(p2, org, t) users[p2] = mk_user(p2, organization=org, team=t, is_superuser=False, persisted=persisted)
else: else:
users[p1] = mk_user(p1, org) users[p1] = mk_user(p1, organization=org, is_superuser=False, persisted=persisted)
if 'labels' in kwargs: if 'labels' in kwargs:
for l in kwargs['labels']: for l in kwargs['labels']:
if type(l) is Label: if type(l) is Label:
labels[l.name] = l labels[l.name] = l
else: else:
labels[l] = mk_label(l, org) labels[l] = mk_label(l, org, persisted=persisted)
return Objects(organization=org, return Objects(organization=org,
superusers=_Mapped(superusers), superusers=_Mapped(superusers),

View File

@@ -22,4 +22,4 @@ def test_job_template_factory(job_template_factory):
assert jt_objects.project.name == 'proj1' assert jt_objects.project.name == 'proj1'
assert jt_objects.inventory.name == 'inventory1' assert jt_objects.inventory.name == 'inventory1'
assert jt_objects.credential.name == 'cred1' assert jt_objects.credential.name == 'cred1'
assert jt_objects.organization.name == 'org1' assert jt_objects.inventory.organization.name == 'org1'