問題タブ [httpx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asynchronous - httpx.AsyncClient を使用した pytest は、新しく作成されたデータベース レコードを見つけることができません
httpx.AsyncClient
FastAPI を使用して pytest と sqlalchemy AsyncSessionをセットアップしようとしています。非同期のものを除いて、すべてが実質的にFastAPI Fullstack repoのテストを模倣しています。
CRUD 単体テストに問題はありません。この問題は、httpx lib から AsyncClient を使用して API テストを実行するときに発生します。
問題は、クライアントによって行われたリクエストは、クライアント フィクスチャを初期化 (セットアップ) する前に作成されたユーザー (私の場合) にしかアクセスできないことです。
私のpytest conftest.py
セットアップは次のようなものです:
したがって、この場合、API テストの実行中に使用できるのはスーパーユーザーtest.superuser@example.com
と通常ユーザーのみです。test.user@example.com
たとえば、以下のコードはアクセス トークンを正常に取得できます。
ただし、以下の変更されたコードはそうではありません。ここでは、新しいユーザーを挿入してから、ログインしてアクセストークンを取得しようとしています。
ここで何が起こっているのですか?どんな助けにも感謝します!
python - Pytest で httpx.AsyncClient() をモックする方法
API からデータをフェッチするために使用する関数のテスト ケースを作成する必要があります。そこでは、 httpx.AsyncClient() をコンテキストマネージャーとして使用しました。しかし、その関数のテストケースの書き方がわかりません。
API を呼び出さずにテスト ケースを作成する必要があります。したがって、この場合、client.post()をモックする必要があると信じていますが、その方法がわかりません。誰かがこれを理解するのを手伝ってくれるなら、それは私にとって本当に役に立ちます。
python - uvicorn ランダム エラー「無効な HTTP 要求が受信されました」
最新のuvicorn[標準] 0.17.1を使用。試しconfig(timeout_keep_alive=0, http='h11',...)
てみたデフォルト (httptools を使用する http='auto')。を使用しuvloop
ます。
別のプロセスでサーバーを実行しています。を使用して呼び出しhttpx
ます。「無効な HTTP リクエスト」が発生し続けます (httptools と h11 の両方に問題があり、一見同様の性質のものです)。ランダムに表示されます。さらに数回呼び出した後、失敗する場合があります。
starlette
TestClient
同じデータを使用すると正常に動作します。
詳細なエラー情報を取得しました (ただし、同じクライアント ペイロードを使用したこの呼び出しが常に失敗するとは限りません):
助けてください。ありがとう!