В настоящее время я работаю над проектом Flask, и мне нужно сделать несколько тестов.
Тест, который я испытываю, касается сессий Flask.
У меня есть такое представление:
@blue_blueprint.route('/dashboard')
"""Invoke dashboard view."""
if 'expires' in session:
if session['expires'] > time.time():
pass
else:
refresh_token()
pass
total_day = revenues_day()
total_month = revenues_month()
total_year = revenues_year()
total_stock_size = stock_size()
total_stock_value = stock_value()
mean_cost = total_stock_value/total_stock_size
return render_template('dashboard.html.j2', total_day=total_day, <br> total_month=total_month, total_year=total_year, total_stock_size=total_stock_size, total_stock_value=total_stock_value, mean_cost=mean_cost)
else:
return redirect(url_for('blue._authorization'))
И проведите этот тест:
def test_dashboard(client):
with client.session_transaction(subdomain='blue') as session:
session['expires'] = time.time() + 10000
response = client.get('/dashboard', subdomain='blue')
assert response.status_code == 200
Мой текущий файл conftest.py:
@pytest.fixture
def app():
app = create_app('config_testing.py')
yield app
@pytest.fixture
def client(app):
return app.test_client(allow_subdomain_redirects=True)
@pytest.fixture
def runner(app):
return app.test_cli_runner(allow_subdomain_redirects=True)
Однако, когда я выполняю тест, я получаю 302код состояния вместо ожидаемого кода состояния 200.
Поэтому мой вопрос заключается в том, как правильно передать значение сеанса?
OBS: при нормальном запуске приложения оператор if для сеанса работает правильно.