Я использую тестовый модуль для проверки логинов с помощью Flask-Login. Целью этого является проверка поведения пользователя, учетные данные которого неверны:
def test_login_user(self):
'''test user login'''
user = User(email='[email protected]', pass='teste')
db.session.add(user)
db.session.commit()
response = self.app.post('/login_user', data={'email':
'[email protected]', 'pass': 'tste'}, follow_redirects=True)
print(response.get_data(), user.is_authenticated)
assert user.is_authenticated == True
self.assertEqual(response.status, "200 OK")
Проблема в том, что assert user.is_authenticated
пройти тест, даже если последнее утверждение не работает:
Traceback (most recent call last):
File "./test.py", line 58, in test_login_user
self.assertEqual(response.status, "200 OK")
AssertionError: '401 UNAUTHORIZED' != '200 OK'
- 401 UNAUTHORIZED
+ 200 OK
Моя реализация представления входа в систему следующая:
@app.route('/login_user', methods=['GET', 'POST'])
def login_user():
if request.method == 'POST':
user_requested = User.query.filter_by(email=request.form['email']).first()
if user_requested is not None:
if sha256_crypt.verify(request.form['pass'], user_requested.pass):
return redirect(url_for('student'))
return redirect(url_for('error'))
Кроме того, в классе User я расширяю UserMixin. Почему user.is_authenticated не возвращает false?