Browse Source

added model for account roles

rework
Holger Frey 7 years ago
parent
commit
2be8692625
  1. 23
      ordr/models/account.py
  2. 27
      ordr/tests/account.py
  3. 4
      ordr/tests/resources/root_resource.py
  4. 2
      ordr/tests/views/__init__.py

23
ordr/models/account.py

@ -0,0 +1,23 @@
''' Models for User Accounts and Roles '''
import enum
class Role(enum.Enum):
''' roles of user accounts '''
UNVALIDATED = 'unvalidated' #: new user, email not validated
NEW = 'new' #: new user, email validated, not active
USER = 'user' #: standard user, may place and view orders
PURCHASER = 'purchaser' #: privileged user, may edit orders
ADMIN = 'admin' #: fully privileged user
INACTIVE = 'inactive' #: user that is no longer active ("deleted")
@property
def principal(self):
''' returns the principal identifier of the role '''
return 'role:' + self.name.lower()
def __str__(self):
''' string representation '''
return self.name.capitalize()

27
ordr/tests/account.py

@ -0,0 +1,27 @@
'UNVALIDATED'
'NEW'
'USER'
'PURCHASER'
'ADMIN'
'INACTIVE'
import pytest
@pytest.mark.parametrize(
'key,result', [('NEW', 'role:new'), ('USER', 'role:user')]
)
def test_role_principal(key, result):
from ordr.models.account import Role
subject = Role[key]
assert subject.principal == result
@pytest.mark.parametrize(
'key,result', [('NEW', 'New'), ('USER', 'User')]
)
def test_role__str__(key, result):
from ordr.models.account import Role
subject = Role[key]
assert str(subject) == result

4
ordr/tests/resources/root_resource.py

@ -2,8 +2,8 @@
def test_root_init(): def test_root_init():
from ordr.resources import RootResource from ordr.resources import RootResource
root = RootResource('request') root = RootResource('request')
assert root.__name__ == None assert root.__name__ is None
assert root.__parent__ == None assert root.__parent__ is None
assert root.request == 'request' assert root.request == 'request'

2
ordr/tests/views/__init__.py

@ -1 +1 @@
# package