Тесты для функции входа в мое приложение flask не работают - PullRequest
0 голосов
/ 20 апреля 2020

Я пишу юнит-тесты для моего flask приложения, и по большей части оно работает нормально, однако часть теста входа в систему не проходит: важно, чтобы это не работало в моем браузере. Похоже, "сообщение" API-вызов не работает. Я использую unittest вместе с Flask -Testing library

Это функция входа в систему

@users.route("/login", methods=["GET", "POST"])
def login():
    if current_user.is_authenticated:
        redirect(url_for('main.home_page'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password, form.password.data):
            login_user(user, remember=form.remember.data)
            next_page = request.args.get('next')
            return redirect(url_for("main.home_page"))
        else:
            flash('invalid username or password', 'error')
    return render_template("login.html", form=form)

Она явно имеет перенаправление, но во время теста это не вызывается. Это тест

from tests.test_basic import BaseTestCase
import unittest
from flask_login import current_user

class BasicTestsCase(BaseTestCase):
    def test_first_correct_login_1(self):
        with self.client:
            response = self.client.post(
                '/login',
                data=dict(email='valid@yahoo.com', password='valeria_31'),
                follow_redirects=True
            )
            self.assert_template_used('login.html')
            self.asertTrue(current_user.is_authenticated)
            self.assertRedirects(response, '/home')

assertRedirects выдает ошибку, и current_user.is_authenticated также дает сбой, однако эта функция отлично работает в моем браузере.

...