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