модульный тест flask: как проверить запрос от зарегистрированного пользователя
Я пишу некоторые модульные тесты для моего веб-приложения Flask, и я пытаюсь проверить различия в ответе между запросом, сделанным анонимным пользователем и зарегистрированным пользователем.
Я использую Flask-Login расширение для реализации входа/выхода пользователя.
очевидно, что я могу выполнить анонимный запрос, но как имитировать запрос от зарегистрированного пользователя?
Я думал, что достаточно отправить в заголовки session cookie, но это не рабочий.
headers = Headers({'Cookie':['WEBSITE_ID=%s; Domain=adsabs.harvard.edu; expires=Thu, 25-Apr-2213 16:53:22 GMT; Path=/' % cookie_value,
'WEBSITE_ID=%s; Domain=.adsabs.harvard.edu; expires=Thu, 25-Apr-2213 16:53:22 GMT; Path=/' % cookie_value,
'session="A VERY LONG STRING"; Path=/; HttpOnly',
]})
rv = app.test_client().get('/', headers=headers)
где значение cookie сеанса-это значение, которое я получил от реального входа в мой браузер.
что я упустил?
1 ответов
колба-логин ищет user_id в сеансе вы можете установить это в тестах, используя session_transaction:
with app.test_client() as c:
with c.session_transaction() as sess:
sess['user_id'] = 'myuserid'
sess['_fresh'] = True # https://flask-login.readthedocs.org/en/latest/#fresh-logins
resp = c.get('/someurl')
здесь myuserid - идентификатор объект.