Add tests for auth decorators
parent
fe54d0a666
commit
e36f17452e
|
@ -253,4 +253,255 @@ def test_request_validator_correctperms():
|
|||
request.user = User()
|
||||
request.user.permissions = ['foo']
|
||||
requirement = milla.auth.permissions.Permission('foo')
|
||||
validator.validate(request, requirement)
|
||||
validator.validate(request, requirement)
|
||||
|
||||
def test_find_request_kwarg():
|
||||
'''Ensure _find_request finds a request in keyword arguments
|
||||
'''
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
found = milla.auth.decorators._find_request('foo', request=request)
|
||||
assert found is request
|
||||
|
||||
def test_find_request_arg1():
|
||||
'''Ensure _find_request finds a request in position 1
|
||||
'''
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
found = milla.auth.decorators._find_request(request)
|
||||
assert found is request
|
||||
|
||||
def test_find_request_arg2():
|
||||
'''Ensure _find_request finds a request in another position
|
||||
'''
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
found = milla.auth.decorators._find_request('foo', request)
|
||||
assert found is request
|
||||
|
||||
def test_auth_required_true():
|
||||
'''Test the auth_required decorator with a valid user
|
||||
'''
|
||||
|
||||
class User(object):
|
||||
pass
|
||||
|
||||
@milla.auth.decorators.auth_required
|
||||
def controller(request):
|
||||
return 'success'
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
request.user = User()
|
||||
response = controller(request)
|
||||
assert response == 'success'
|
||||
|
||||
def test_auth_required_false():
|
||||
'''Test the auth_required decorator with no user
|
||||
'''
|
||||
|
||||
@milla.auth.decorators.auth_required
|
||||
def controller(request):
|
||||
return 'success'
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
request.user = None
|
||||
response = controller(request)
|
||||
assert response != 'success'
|
||||
assert response.status.startswith('4')
|
||||
|
||||
def test_require_perms_none():
|
||||
'''Test the require_perms decorator with no requirement
|
||||
'''
|
||||
|
||||
class User(object):
|
||||
pass
|
||||
|
||||
@milla.auth.decorators.require_perms()
|
||||
def controller(request):
|
||||
return 'success'
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
request.user = User()
|
||||
response = controller(request)
|
||||
assert response == 'success'
|
||||
|
||||
def test_require_perms_valid_str():
|
||||
'''Test the require_perms decorator with valid permissions as strings
|
||||
'''
|
||||
|
||||
class User(object):
|
||||
pass
|
||||
|
||||
@milla.auth.decorators.require_perms('foo')
|
||||
def controller(request):
|
||||
return 'success'
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
request.user = User()
|
||||
request.user.permissions = ['foo']
|
||||
response = controller(request)
|
||||
assert response == 'success'
|
||||
|
||||
def test_require_perms_valid_permission():
|
||||
'''Test the require_perms decorator with valid permissions as Permissions
|
||||
'''
|
||||
|
||||
class User(object):
|
||||
pass
|
||||
|
||||
req = milla.auth.permissions.Permission('foo')
|
||||
@milla.auth.decorators.require_perms(req)
|
||||
def controller(request):
|
||||
return 'success'
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
request.user = User()
|
||||
request.user.permissions = ['foo']
|
||||
response = controller(request)
|
||||
assert response == 'success'
|
||||
|
||||
def test_require_perms_multi_valid_string():
|
||||
'''Test the require_perms decorator with multiple requirements as strings
|
||||
'''
|
||||
|
||||
class User(object):
|
||||
pass
|
||||
|
||||
@milla.auth.decorators.require_perms('foo', 'bar')
|
||||
def controller(request):
|
||||
return 'success'
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
request.user = User()
|
||||
request.user.permissions = ['foo', 'bar']
|
||||
response = controller(request)
|
||||
assert response == 'success'
|
||||
|
||||
def test_require_perms_multi_valid_permission():
|
||||
'''Test the require_perms decorator with multiple requirements as Permissions
|
||||
'''
|
||||
|
||||
class User(object):
|
||||
pass
|
||||
|
||||
req1 = milla.auth.permissions.Permission('foo')
|
||||
req2 = milla.auth.permissions.Permission('bar')
|
||||
@milla.auth.decorators.require_perms(req1, req2)
|
||||
def controller(request):
|
||||
return 'success'
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
request.user = User()
|
||||
request.user.permissions = ['foo', 'bar']
|
||||
response = controller(request)
|
||||
assert response == 'success'
|
||||
|
||||
def test_require_perms_invalid_none():
|
||||
'''Test the require_perms decorator with no permissions
|
||||
'''
|
||||
|
||||
class User(object):
|
||||
pass
|
||||
|
||||
@milla.auth.decorators.require_perms('foo')
|
||||
def controller(request):
|
||||
return 'success'
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
request.user = User()
|
||||
response = controller(request)
|
||||
assert response != 'success'
|
||||
assert response.status.startswith('4')
|
||||
|
||||
def test_require_perms_invalid_empty():
|
||||
'''Test the require_perms decorator with an empty permissions set
|
||||
'''
|
||||
|
||||
class User(object):
|
||||
pass
|
||||
|
||||
@milla.auth.decorators.require_perms('foo')
|
||||
def controller(request):
|
||||
return 'success'
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
request.user = User()
|
||||
request.user.permissions = []
|
||||
response = controller(request)
|
||||
assert response != 'success'
|
||||
assert response.status.startswith('4')
|
||||
|
||||
def test_require_perms_invalid_string():
|
||||
'''Test the require_perms decorator with invalid permissions as strings
|
||||
'''
|
||||
|
||||
class User(object):
|
||||
pass
|
||||
|
||||
@milla.auth.decorators.require_perms('foo')
|
||||
def controller(request):
|
||||
return 'success'
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
request.user = User()
|
||||
request.user.permissions = ['bar']
|
||||
response = controller(request)
|
||||
assert response != 'success'
|
||||
assert response.status.startswith('4')
|
||||
|
||||
def test_require_perms_invalid_permission():
|
||||
'''Test the require_perms decorator with invalid permissions as Permissions
|
||||
'''
|
||||
|
||||
class User(object):
|
||||
pass
|
||||
|
||||
req = milla.auth.permissions.Permission('foo')
|
||||
@milla.auth.decorators.require_perms(req)
|
||||
def controller(request):
|
||||
return 'success'
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
request.user = User()
|
||||
request.user.permissions = ['bar']
|
||||
response = controller(request)
|
||||
assert response != 'success'
|
||||
assert response.status.startswith('4')
|
||||
|
||||
def test_require_perms_multi_invalid_string():
|
||||
'''Test the require_perms decorator with multiple invalid permissions as strings
|
||||
'''
|
||||
|
||||
class User(object):
|
||||
pass
|
||||
|
||||
@milla.auth.decorators.require_perms('foo', 'bar')
|
||||
def controller(request):
|
||||
return 'success'
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
request.user = User()
|
||||
request.user.permissions = ['bar']
|
||||
response = controller(request)
|
||||
assert response != 'success'
|
||||
assert response.status.startswith('4')
|
||||
|
||||
def test_require_perms_multi_invalid_permission():
|
||||
'''Test the require_perms decorator with multiple invalid permissions as Permissions
|
||||
'''
|
||||
|
||||
class User(object):
|
||||
pass
|
||||
|
||||
req1 = milla.auth.permissions.Permission('foo')
|
||||
req2 = milla.auth.permissions.Permission('foo')
|
||||
@milla.auth.decorators.require_perms(req1, req2)
|
||||
def controller(request):
|
||||
return 'success'
|
||||
|
||||
request = milla.Request.blank('/')
|
||||
request.user = User()
|
||||
request.user.permissions = ['bar']
|
||||
response = controller(request)
|
||||
assert response != 'success'
|
||||
assert response.status.startswith('4')
|
||||
|
|
Loading…
Reference in New Issue