updated organization rbac tests

This commit is contained in:
Wayne Witzel III
2016-02-04 16:53:06 -05:00
parent 724b572a3c
commit b903726ddb
2 changed files with 40 additions and 40 deletions

View File

@@ -1,6 +1,18 @@
import pytest import pytest
from awx.main.models.organization import Organization from awx.main.models.organization import Organization
from django.contrib.auth.models import User
@pytest.fixture
def user():
def u(name, is_superuser=False):
try:
user = User.objects.get(username=name)
except User.DoesNotExist:
user = User(username=name, is_superuser=is_superuser, password=name)
user.save()
return user
return u
@pytest.fixture @pytest.fixture
def organization(): def organization():

View File

@@ -1,51 +1,39 @@
import pytest import pytest
from awx.main.access import OrganizationAccess from awx.main.access import OrganizationAccess
from django.contrib.auth.models import User
def make_user(name, admin=False):
try:
user = User.objects.get(username=name)
except User.DoesNotExist:
user = User(username=name, is_superuser=admin, password=name)
user.save()
return user
@pytest.mark.django_db @pytest.mark.django_db
@pytest.mark.parametrize("username,admin", [ def test_organization_migration_admin(organization, permissions, user):
("admin", True), u = user('admin', True)
("user", False), organization.admins.add(u)
])
def test_organization_migration(organization, permissions, username, admin):
user = make_user(username, admin)
if admin:
organization.admins.add(user)
else:
organization.users.add(user)
migrated_users = organization.migrate_to_rbac() migrated_users = organization.migrate_to_rbac()
assert len(migrated_users) == 1 assert len(migrated_users) == 1
assert migrated_users[0] == user assert organization.accessible_by(u, permissions['admin']) == True
if admin:
assert organization.accessible_by(user, permissions['admin']) == True
else:
assert organization.accessible_by(user, permissions['auditor']) == True
@pytest.mark.django_db @pytest.mark.django_db
@pytest.mark.parametrize("username,admin", [ def test_organization_migration_user(organization, permissions, user):
("admin", True), u = user('user', False)
("user-admin", False), organization.users.add(u)
("user", False)
])
def test_organization_access(organization, username, admin):
user = make_user(username, admin)
access = OrganizationAccess(user)
if admin:
assert access.can_change(organization, None) == True
elif username == "user-admin":
organization.admins.add(user)
assert access.can_change(organization, None) == True
else:
assert access.can_change(organization, None) == False
migrated_users = organization.migrate_to_rbac()
assert len(migrated_users) == 1
assert organization.accessible_by(u, permissions['auditor']) == True
@pytest.mark.django_db
def test_organization_access_superuser(organization, user):
access = OrganizationAccess(user('admin', True))
assert access.can_change(organization, None) == True
@pytest.mark.django_db
def test_organization_access_admin(organization, user):
u = user('admin', False)
organization.admins.add(u)
access = OrganizationAccess(u)
assert access.can_change(organization, None) == True
@pytest.mark.django_db
def test_organization_access_user(organization, user):
access = OrganizationAccess(user('user', False))
assert access.can_change(organization, None) == False