Я пытаюсь протестировать Flask страницу входа в серверное приложение, используя базовую c авторизацию.
Моя функция входа определена следующим образом:
def login():
auth = request.authorization
if auth and auth.password == app.config['PASSWORD']:
token = jwt.encode({'user' : auth.username,
'exp': datetime.utcnow() + timedelta(hours = 6)}, app.config['SPA_SECRET_KEY'])
return jsonify({'token' : token.decode('UTF-8')})
return make_response('Could not verify!', 401, {'WWW-Authenticate' : 'Basic realm = "Login Required:'})
Мой файл pytest определено ниже:
import pytest
import TIM
_app = TIM.create_app(True)
@pytest.fixture
def client(app):
# Get a test client for your Flask app
return app.test_client()
@pytest.fixture
def app():
"""Yield your app with its context set up and ready"""
# Set up: Establish an application context
ctx = _app.app_context()
ctx.push()
yield _app
# Tear down: run this after the tests are completed
ctx.pop()
def test_login(client, username, password):
# DOES NOT WORK
rv = client.get('/login/', query_string=dict(), follow_redirects=True)
Моя функция test_login не работает, поскольку я не знаю, как отправить аутентификацию с помощью запроса на получение. Я бы предположил, что мне нужно каким-то образом ввести аутентификацию в query_string (это заголовок?), Но я провел некоторое исследование и, похоже, не могу понять, как это сделать. Любая помощь приветствуется!