API からデータをフェッチするために使用する関数のテスト ケースを作成する必要があります。そこでは、 httpx.AsyncClient() をコンテキストマネージャーとして使用しました。しかし、その関数のテストケースの書き方がわかりません。
async def make_dropbox_request(url, payload, dropbox_token):
async with httpx.AsyncClient(timeout=None, follow_redirects=True) as client:
headers = {
'Content-Type': 'application/json',
'authorization': 'Bearer '+ dropbox_token
}
# make the api call
response = await client.post(url, headers=headers, json=payload)
if response.status_code not in [200]:
print('Dropbox Status Code: ' + str(response.status_code))
if response.status_code in [200, 202, 303]:
return json.loads(response.text)
elif response.status_code == 401:
raise DropboxAuthenticationError()
elif response.status_code == 429:
sleep_time = int(response.headers['Retry-After'])
if sleep_time < 1*60:
await asyncio.sleep(sleep_time)
raise DropboxMaxRateLimitError()
raise DropboxMaxDailyRateLimitError()
raise DropboxHTTPError()
API を呼び出さずにテスト ケースを作成する必要があります。したがって、この場合、client.post()をモックする必要があると信じていますが、その方法がわかりません。誰かがこれを理解するのを手伝ってくれるなら、それは私にとって本当に役に立ちます。