Я пишу юнит-тесты для моего 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 также дает сбой, однако эта функция отлично работает в моем браузере.