53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
import pytest
|
|
from werkzeug.exceptions import BadRequest, NotFound
|
|
from flaschengeist.controller import roleController, userController
|
|
from flaschengeist.models.user import User
|
|
|
|
VALID_TOKEN = "f4ecbe14be3527ca998143a49200e294"
|
|
|
|
|
|
def test_get_user(app):
|
|
with app.app_context():
|
|
user = userController.get_user("user")
|
|
assert user is not None and isinstance(user, User)
|
|
assert user.userid == "user"
|
|
|
|
user = userController.get_user("deleted_user", deleted=True)
|
|
assert user is not None and isinstance(user, User)
|
|
assert user.userid == "deleted_user"
|
|
|
|
with pytest.raises(NotFound):
|
|
user = userController.get_user("__does_not_exist__")
|
|
with pytest.raises(NotFound):
|
|
user = userController.get_user("__does_not_exist__", deleted=True)
|
|
with pytest.raises(NotFound):
|
|
user = userController.get_user("deleted_user")
|
|
|
|
|
|
def test_set_roles(app):
|
|
with app.app_context():
|
|
user = userController.get_user("user")
|
|
userController.set_roles(user, [])
|
|
assert user.roles_ == []
|
|
|
|
userController.set_roles(user, ["role_1"])
|
|
assert len(user.roles_) == 1 and user.roles_[0].id == 1
|
|
|
|
# Test unknown role + no create flag -> raise no changes
|
|
with pytest.raises(BadRequest):
|
|
userController.set_roles(user, ["__custom__"])
|
|
assert len(user.roles_) == 1
|
|
|
|
userController.set_roles(user, ["__custom__"], create=True)
|
|
assert len(user.roles_) == 1 and user.roles_[0].name == "__custom__"
|
|
assert roleController.get("__custom__").id == user.roles_[0].id
|
|
|
|
userController.set_roles(user, ["__custom__"], create=True)
|
|
assert len(user.roles_) == 1
|
|
|
|
userController.set_roles(user, ["__custom__", "role_1"])
|
|
assert len(user.roles_) == 2
|
|
|
|
userController.set_roles(user, [])
|
|
assert len(user.roles_) == 0
|