在 pytest 中断言 HTTPException
assert HTTPException in pytest
**main.py:**
def bucket_exists(bucket_name):
try:
something()
except ClientError as error:
error_code = int(error.response['Error']['Code'])
if error_code == 403:
raise HTTPException(status_code=403, detail=f"Private Bucket. Forbidden Access!")
elif error_code == 404:
raise HTTPException(status_code=404, detail=f"Bucket Does Not Exist!")
return flag
**test_main.py:**
def test_bucket_exists(mock_s3_bucket):
resp = fetch_data.bucket_exists('abc123')
assert resp == {"detail":"Bucket Does Not Exist!"}
我的测试一直失败并出现错误:fastapi.exceptions.HTTPException
请帮助处理 pytest 中已知的 httpexception。我已阅读其他帖子但与我的测试用例无关
尝试使用 pytest.raises
into exc_info
context 捕获异常,然后断言它的 value
属性,其中包含引发的异常对象:
def test_bucket_exists(mock_s3_bucket):
with pytest.raises(HTTPException) as exc_info:
fetch_data.bucket_exists('abc123')
assert isinstance(exc_info.value, HTTPException)
assert exc_info.value.status_code == 404
assert exc_info.value.detail == "Bucket Does Not Exist!"
**main.py:**
def bucket_exists(bucket_name):
try:
something()
except ClientError as error:
error_code = int(error.response['Error']['Code'])
if error_code == 403:
raise HTTPException(status_code=403, detail=f"Private Bucket. Forbidden Access!")
elif error_code == 404:
raise HTTPException(status_code=404, detail=f"Bucket Does Not Exist!")
return flag
**test_main.py:**
def test_bucket_exists(mock_s3_bucket):
resp = fetch_data.bucket_exists('abc123')
assert resp == {"detail":"Bucket Does Not Exist!"}
我的测试一直失败并出现错误:fastapi.exceptions.HTTPException
请帮助处理 pytest 中已知的 httpexception。我已阅读其他帖子但与我的测试用例无关
尝试使用 pytest.raises
into exc_info
context 捕获异常,然后断言它的 value
属性,其中包含引发的异常对象:
def test_bucket_exists(mock_s3_bucket):
with pytest.raises(HTTPException) as exc_info:
fetch_data.bucket_exists('abc123')
assert isinstance(exc_info.value, HTTPException)
assert exc_info.value.status_code == 404
assert exc_info.value.detail == "Bucket Does Not Exist!"