|
|
|
''' Tests for the root resource '''
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
from ordr.resources.account import RegistrationResource, PasswordResetResource
|
|
|
|
|
|
|
|
|
|
|
|
def test_root_init():
|
|
|
|
''' test RootResource initialization '''
|
|
|
|
from ordr.resources import RootResource
|
|
|
|
root = RootResource('request')
|
|
|
|
assert root.__name__ is None
|
|
|
|
assert root.__parent__ is None
|
|
|
|
assert root.request == 'request'
|
|
|
|
|
|
|
|
|
|
|
|
def test_root_acl():
|
|
|
|
''' test access controll list for RootResource '''
|
|
|
|
from pyramid.security import Allow, Everyone, DENY_ALL
|
|
|
|
from ordr.resources import RootResource
|
|
|
|
root = RootResource(None)
|
|
|
|
assert root.__acl__() == [(Allow, Everyone, 'view'), DENY_ALL]
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
'key,resource_class', [
|
|
|
|
('register', RegistrationResource),
|
|
|
|
('forgot', PasswordResetResource)
|
|
|
|
]
|
|
|
|
)
|
|
|
|
def test_root_getitem(key, resource_class):
|
|
|
|
''' test '__getitem__()' method of RootResource '''
|
|
|
|
from ordr.resources import RootResource
|
|
|
|
|
|
|
|
root = RootResource(None)
|
|
|
|
child = root[key]
|
|
|
|
|
|
|
|
assert isinstance(child, resource_class)
|
|
|
|
assert child.__name__ == key
|
|
|
|
assert child.__parent__ == root
|
|
|
|
assert child.request == root.request
|
|
|
|
|
|
|
|
|
|
|
|
def test_root_getitem_raises_error():
|
|
|
|
''' test '__getitem__()' method raises KeyError '''
|
|
|
|
from ordr.resources import RootResource
|
|
|
|
root = RootResource(None)
|
|
|
|
with pytest.raises(KeyError):
|
|
|
|
root['unknown child name']
|