Как протестировать (pytest), или макет, объект App.state of fastapiPython

Программы на Python
Ответить
Anonymous
 Как протестировать (pytest), или макет, объект App.state of fastapi

Сообщение Anonymous »

После некоторого исследования я не могу найти помощь, чтобы издеваться над приложением.

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

def get_app():
settings = get_settings()
application = FastAPI()
config = {...}

application = create_app(**config)
return application

app = get_app()

@pytest.fixture(scope="module")
def test_app():
client = TestClient(app)
yield client

def test_liveness(test_app):
response = test_app.get("/health/liveness")
assert response.status_code == 200

assert response.json() == {"status": "ready"}
test_liency не работает, потому что конечная точка использует app.state.* Object (ранее создавая в основном):

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

db_client = class my_class(dataset,project_id,connector_parameters)
await db_client.create_clients()
app.state.db_client = db_client
Итак, как я имитирую объект app.state.db_client, используемый в этой конечной точке /health/liveness :

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

if request.app.state.db_client and request.app.state.db_client.is_connected:
return Health(status="ready")
else:
raise HTTPException(status_code=503, detail="Not ready")
< /code>
Ошибка, которую я есть, это: < /p>
AttributeError: 'State' object has no attribute 'db_client'
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/793 ... of-fastapi
Ответить

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

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

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

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

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