Flask-jwt-extended: поддельный заголовок авторизации во время тестирования (pytest)Python

Программы на Python
Anonymous
Flask-jwt-extended: поддельный заголовок авторизации во время тестирования (pytest)

Сообщение Anonymous »

Это функция, которую я хочу протестировать

Код: Выделить всё

@jwt_required
def get_all_projects(self):
# implementation not included here
Я вызываю функцию из класса pytest

Код: Выделить всё

def test_get_all_projects(db_session):
all_projects = ProjectController.get_all_projects()
с помощью приспособления db_session

Код: Выделить всё

@pytest.fixture(scope='function')
def db_session(db, request):
"""Creates a new database session for a test."""
engine = create_engine(
DefaultConfig.SQLALCHEMY_DATABASE_URI,
connect_args={"options": "-c timezone=utc"})
DbSession = sessionmaker(bind=engine)
session = DbSession()
connection = engine.connect()
transaction = connection.begin()
options = dict(bind=connection, binds={})
session = db.create_scoped_session(options=options)
db.session = session

yield session

transaction.rollback()
connection.close()
session.remove()
Это приводит к ошибке

Код: Выделить всё

>           raise NoAuthorizationError("Missing {} Header".format(header_name))
E           flask_jwt_extended.exceptions.NoAuthorizationError: Missing Authorization Header

../../.virtualenvs/my-app/lib/python3.6/site-packages/flask_jwt_extended/view_decorators.py:132: NoAuthorizationError
Вызов create_access_token вручную

Я по-прежнему получаю тот же результат, когда вызываю create_access_token в приспособлении выше

Код: Выделить всё

db.session = session
session._test_access_token = create_access_token(identity='pytest')

yield session
Как я могу подделать токены JWT во время тестирования с помощью pytest?

Подробнее здесь: https://stackoverflow.com/questions/468 ... ing-pytest

Вернуться в «Python»