Работа вне контекста запроса при модульном тестировании приложения FastAPIPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Работа вне контекста запроса при модульном тестировании приложения FastAPI

Сообщение Anonymous »

При преобразовании приложения Flask в FastAPI я получил следующую ошибку в модульных тестах:

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

>           raise RuntimeError(unbound_message) from None
E           RuntimeError: Working outside of request context.
E
E           This typically means that you attempted to use functionality that needed
E           an active HTTP request. Consult the documentation on testing for
E           information about how to avoid this problem.

/usr/local/python/3.11.8/lib/python3.11/site-packages/werkzeug/local.py:508: RuntimeError
Вот как выглядит мой тестовый пример:

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

TEST_DATA = [...]

class MyTest:
def setup_method(self):
self.app = create_app()
self.client = TestClient(self.app)

@pytest.mark.parametrize(
"name,messages,expected,status_code",
TEST_DATA,
)
def test_SendMessageChains_ExpectCorrectValuesOfTransaction(
self, name, messages, expected, status_code
):
for message in messages:
data = {"plain": message, "envelope": {"to": self.email_adapters[0].email}}
response = self.client.post(
"/adapter/email-gateway",
headers={"Content-Type": "application/json"},
data=json.dumps(data),
)
verify_status(response, status_code)

transactions = models.transaction.Transaction.objects()
assert len(transactions) == len(expected)
for i, transaction in enumerate(transactions):
self.validate(transaction, expected[i])
Он не проходит в единственном тесте, параметризованном с помощью Pytest.
  • Что именно означает эта ошибка?
    Он завершается неудачно в единственном тесте, параметризованном с помощью Pytest.

    Что именно означает эта ошибка?
    Он завершается неудачей в единственном тесте, параметризованном с помощью Pytest.

    Что именно означает эта ошибка?
    Он не проходит в единственном тесте, параметризованном с помощью Pytest.

    Что именно означает эта ошибка?
    Он завершается неудачей в единственном тесте, параметризованном с помощью Pytest.

    li>
    Зачем нужен контекст запроса?
  • Это как-то связано с параметризацией в Pytest? Эту проблему я наблюдаю только в параметризованном тесте.


Подробнее здесь: https://stackoverflow.com/questions/787 ... it-testing
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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