Move permissions test to pytest

This commit is contained in:
Joseph Schorr 2018-07-18 11:14:27 -04:00
parent 4ed64b0956
commit 406082be74
2 changed files with 37 additions and 39 deletions

View file

@ -0,0 +1,37 @@
import pytest
from auth import scopes
from auth.permissions import SuperUserPermission, QuayDeferredPermissionUser
from data import model
from test.fixtures import *
SUPER_USERNAME = 'devtable'
UNSUPER_USERNAME = 'freshuser'
@pytest.fixture()
def superuser(initialized_db):
return model.user.get_user(SUPER_USERNAME)
@pytest.fixture()
def normie(initialized_db):
return model.user.get_user(UNSUPER_USERNAME)
def test_superuser_matrix(superuser, normie):
test_cases = [
(superuser, {scopes.SUPERUSER}, True),
(superuser, {scopes.DIRECT_LOGIN}, True),
(superuser, {scopes.READ_USER, scopes.SUPERUSER}, True),
(superuser, {scopes.READ_USER}, False),
(normie, {scopes.SUPERUSER}, False),
(normie, {scopes.DIRECT_LOGIN}, False),
(normie, {scopes.READ_USER, scopes.SUPERUSER}, False),
(normie, {scopes.READ_USER}, False),
]
for user_obj, scope_set, expected in test_cases:
perm_user = QuayDeferredPermissionUser.for_user(user_obj, scope_set)
has_su = perm_user.can(SuperUserPermission())
assert has_su == expected

View file

@ -1,39 +0,0 @@
import unittest
from app import app
from data import model
from auth import scopes
from auth.permissions import SuperUserPermission, QuayDeferredPermissionUser
from initdb import setup_database_for_testing, finished_database_for_testing
SUPER_USERNAME = 'devtable'
UNSUPER_USERNAME = 'freshuser'
class TestSuperUserOps(unittest.TestCase):
def setUp(self):
setup_database_for_testing(self)
self._su = model.user.get_user(SUPER_USERNAME)
self._normie = model.user.get_user(UNSUPER_USERNAME)
def tearDown(self):
finished_database_for_testing(self)
def test_superuser_matrix(self):
test_cases = [
(self._su, {scopes.SUPERUSER}, True),
(self._su, {scopes.DIRECT_LOGIN}, True),
(self._su, {scopes.READ_USER, scopes.SUPERUSER}, True),
(self._su, {scopes.READ_USER}, False),
(self._normie, {scopes.SUPERUSER}, False),
(self._normie, {scopes.DIRECT_LOGIN}, False),
(self._normie, {scopes.READ_USER, scopes.SUPERUSER}, False),
(self._normie, {scopes.READ_USER}, False),
]
for user_obj, scope_set, expected in test_cases:
perm_user = QuayDeferredPermissionUser.for_user(user_obj, scope_set)
has_su = perm_user.can(SuperUserPermission())
self.assertEquals(has_su, expected)