python - 失败 test_main.py::test_login_success - 断言 405 == 200
问题描述
我是 pytest 的新手,正在努力测试代码。测试结果如何显示失败。
**main.py**
@app.post("/loginsuccess/", response_class=HTMLResponse)
async def login_success(request: Request, username: str = Form(...), password: str = Form(...)):
p = await User_Pydantic.from_tortoise_orm(await User.get(username=username, password=password))
json_compatible_item_data = jsonable_encoder(p)
if json_compatible_item_data is not None:
logger.info("Logged in Successfully")
return templates.TemplateResponse("homepage.html", {"request": request, "username":username})
else:
status_code:int
status_code = 500
logger.error("Invalid Credentials")
return templates.TemplateResponse("index.html", {"request":request, "status_code":status_code})
**test_main.py**
def test_login_success():
response = client.get('/loginsuccess/', json={'username': 'sheik', 'password':'abdullah'})
assert response.status_code==200
下面是测试结果
================================================================== short test summary info ==================================================================
FAILED test_main.py::test_login_success - assert 405 == 200
解决方案
实际上,您从服务器获得的响应是 405,而不是 200。这就是您的断言失败的原因。
HTTP 405 is Method Not Allowed 响应状态码表示请求方法为服务器已知但目标资源不支持。
只需确保服务器/后端/loginsuccess/
作为Post请求处理它看起来您的请求具有无效参数或后端配置不正确。
推荐阅读
- sqlalchemy - 在审计表中添加 JSON 数据
- performance - Elasticsearch 随着大小参数的增加变慢(不依赖于数据大小)
- vowpalwabbit - `vw --audit` 如何在内部计算特征的权重?
- hugo - 如何使用 netlify CMS 在博客部分添加博客文章列表?
- mysql - 优化 SQL 查询 - 清理数据库中的旧日志
- android - 复选框父子关系android
- angular - 将 Javascript 脚本导入 Angular
- google-sheets - 将 Strava 与 Google 表格集成
- laravel - 从 Laravel 刀片模板调用数据库
- django - 将 Django 的管理员用户连接到模型