2016-02-24 4 views
2

Как я могу программно (без публикации учетных данных на странице входа, как я сейчас делаю), чтобы войти в систему во время тестов, используя Flask-login?Программируемый вход в фляж во время тестов

Я пробовал описанное решение here (что кажется единственным для входа в систему с программным обеспечением), но в моем случае он не работает, я получаю ответ 302, потому что unauthorized_handler запускается, как если бы пользователь не вошел в систему (мой обработчик перенаправляется на страницу входа, если пользователь не аутентифицирован).

ответ

1

Я решил! И IMO Я думаю, что это самое элегантное и простое решение возможно:

# we need this: 
from flask_login import encode_cookie 

# ...then in the test:  
with self.client.session_transaction(): 
    self.client.set_cookie(
     self.app.config['SERVER_NAME'], 
     'remember_token', 
     encode_cookie(user_id) 
    ) 
    # assertions here... User is now logged in! \0/ 

Реальный код находится всего в 2 строки (здесь я отформатированная только для удобства чтения: P)

 Смежные вопросы

  • Нет связанных вопросов^_^