Пример #1
0
def test_get_user(_admin):
    """res -> tuple(flask.wrappers.Response)"""
    response, status = get_user("Admin")
    assert status == 200
    user_dict = response.json
    assert isinstance(user_dict, dict)
    assert user_dict.get("user") == "Admin", f"user_dict={user_dict}"
    assert user_dict.get("argon_password") is None, f"user_dict={user_dict}"
    individual_ids = user_dict.get("individuals")
    assert isinstance(individual_ids, list), f"user_dict={user_dict}"
    assert len(individual_ids) > 0, f"user_dict={user_dict}"
Пример #2
0
def login_page():
    form = LoginForm()
    if request.method == "POST":
        if form.validate_on_submit():
            username = form.data["username"]
            user = get_user(username)
            if user is not None:
                password = form.data["password"]
                if hasher.verify(password, user.password):
                    login_user(user, remember=True)
                    flash("You have logged in.")
                    next_page = request.args.get("next", url_for("home_page"))
                    return redirect(next_page)
            flash("Invalid credentials.")
    return render_template("login.html", form=form)
Пример #3
0
def test_enable_user(_admin):
    response, _ = get_user("demo")
    user = response.json
    assert user.get("enabled"), "Demo user is not enabled from the beginning"
    response, status = enable_user("demo", "False")
    assert response.json.get("success")
    assert status == 200
    response, _ = get_user("demo")
    user = response.json
    assert not user.get("enabled"), "Demo user should be disabled"
    response, status = enable_user("demo", "True")
    assert response.json.get("success")
    assert status == 200
    response, _ = get_user("demo")
    user = response.json
    assert user.get("enabled"), "Demo user should be enabled"
    response, status = enable_user("Admin", "False")
    assert status == 400
    assert not response.json.get("success")
    assert response.json.get(
        "message") == "Cannot change the status of Admin user!"
    response, status = enable_user("abcdefxyz", "True")
    assert status == 404
    assert response.json.get("message") == "User not found"
Пример #4
0
def register_page():
    form = RegisterForm()
    if request.method == "POST":
        if form.validate_on_submit():
            username = form.data["username"]
            user = get_user(username)
            if user is None:
                parser = reqparse.RequestParser()
                parser.add_argument('username', type=str)
                parser.add_argument('password', type=str)
                parser.add_argument('is_admin', type=bool)
                parser.add_argument('active', type=bool)
                args = parser.parse_args()
                u = Users.create(**args)
                print(u)
                print(type(u))
                flash("You have signed up!")
                next_page = request.args.get("next", url_for("home_page"))
                return redirect(next_page)
            flash("Already exist username.")
    return render_template("register.html", form=form)
Пример #5
0
def test_get_non_existing_user(_admin):
    """res -> tuple(flask.wrappers.Response)"""
    _, status = get_user("JuanSinMiedo")
    assert status == 404
Пример #6
0
def test_get_user_without_permissions(_demo):
    """res -> tuple(flask.wrappers.Response)"""
    res = get_user("whatever_user")
    _check_only_available_to_admin(res)
Пример #7
0
def test_bad_attempt_to_disable_user(_admin):
    response, _ = get_user("demo")
    user = response.json
    assert user.get("enabled"), "Demo user is not enabled from the beginning"
    _, status = enable_user("demo", "Falsch")
    assert status == 400