Я пишу модуль модульного тестирования для моего python3 flask проекта. Один из тестов предназначен для проверки того, что после передачи учетных данных пользователя в форму входа пользователь успешно перенаправляется на домашнюю страницу. Само приложение отлично работает через веб-браузер.
У меня есть следующие фрагменты:
rout.py :
@users.route('/login', methods=['GET', 'POST'])
def login():
...
# correct credentials
login_user(user, remember=form.remember.data)
return redirect(url_for('main.home'))
# incorrect credentials
flash('Log-in failed! Check your credentials.', 'danger')
return render_template('login.html', title='Login', form=form)
test.py :
from flaskblog import create_app, db
from flask_testing import TestCase
import unittest
from flask import url_for
class Tests(TestCase):
def create_app(self):
return create_app()
def setUp(self):
self.app = self.create_app()
def tearDown(self):
pass
def test_login(self):
tester = self.app.test_client(self)
# log with user credentials
response = tester.post('/login', data={'email': 'ab@abc.com', 'password': '1'})
self.assertRedirects(response, url_for('main.home'))
if __name__ == '__main__':
unittest.main()
При запуске тестового фрагмента я получаю сообщение об ошибке: self.assertTrue (response.status_code в valid_status_codes, message или not_redirect) AssertionError: False неверно: HTTP Status 301, 302, 303, 305, 307 ожидается, но получил 200 Это означает, что код, возвращаемый сервером, равен 200, а я надеялся получить 302, что указывало бы на перенаправление. Я попытался проверить поведение сервера, и это результат консоли, когда я выполняю вход вручную:
Мой вопрос: как именно я могу проверить, происходит ли перенаправление?