修复了单元测试中发现的问题

This commit is contained in:
高子兴 2024-11-20 16:26:11 +08:00
parent 60231d5272
commit 39ab82b655
3 changed files with 14 additions and 11 deletions

View File

@ -3,15 +3,13 @@
# @Author : 河瞬 # @Author : 河瞬
# @FileName: login_reg.py # @FileName: login_reg.py
# @Software: PyCharm # @Software: PyCharm
from fastapi import HTTPException, Response, Depends, APIRouter
from typing import Optional, Annotated
from datetime import datetime, timedelta from datetime import datetime, timedelta
from jose import JWTError, jwt from typing import Optional
from sqlmodel import select from fastapi import APIRouter
from models import Tenant, User, Project
from dependencies import * from dependencies import *
from models import Tenant
router = APIRouter() router = APIRouter()
@ -53,14 +51,15 @@ async def login(response: Response, user_data: dict, session: SessionDep):
@router.post("/api/s1/register") @router.post("/api/s1/register")
async def register(data: dict, session: SessionDep): async def register(data: dict, session: SessionDep):
if session.exec(select(Tenant).where(Tenant.name == data['name'])): if session.exec(select(Tenant).where(Tenant.name == data['name'])).first():
raise HTTPException(status_code=409, detail="租户名已存在") raise HTTPException(status_code=409, detail="租户名已存在")
if session.exec(select(User).where(User.username == data['username'])): if session.exec(select(User).where(User.username == data['username'])).first():
raise HTTPException(status_code=409, detail="用户名已存在") raise HTTPException(status_code=409, detail="用户名已存在")
tenant = Tenant(name=data['name']) tenant = Tenant(name=data['name'])
user = User(username=data['username'], password=data['password'], role=1, tenant=tenant) user = User(username=data['username'], password=data['password'], role=1, tenant=tenant)
session.add(tenant) session.add(tenant)
session.add(user) session.add(user)
session.commit()
session.close() session.close()
return {"detail": "注册成功"} return {"detail": "注册成功"}

View File

@ -4,9 +4,10 @@
# @FileName: manage_user.py # @FileName: manage_user.py
# @Software: PyCharm # @Software: PyCharm
from fastapi import HTTPException, APIRouter, Depends, Request from fastapi import HTTPException, APIRouter, Depends, Request
from sqlmodel import select, Session from sqlmodel import select
from models import User, Tenant
from dependencies import SessionDep, get_current_user from dependencies import SessionDep, get_current_user
from models import User
router = APIRouter() router = APIRouter()
@ -31,6 +32,9 @@ async def add_or_update_user(data: dict, session: SessionDep, current_user: User
username = data.get("username") username = data.get("username")
password = data.get("password") password = data.get("password")
role = data.get("role") role = data.get("role")
if role not in ["auditor", "estimator"]:
raise HTTPException(status_code=400, detail="Invalid role")
role = 2 if role == "estimator" else 3
if not username or not role: if not username or not role:
raise HTTPException(status_code=400, detail="Username and role are required") raise HTTPException(status_code=400, detail="Username and role are required")
@ -63,7 +67,7 @@ async def delete_user(username: str, session: SessionDep, current_user: User = D
# username = data.get("username") # username = data.get("username")
if not username: if not username:
raise HTTPException(status_code=400, detail="Username is required") raise HTTPException(status_code=422, detail="Username is required")
user = session.exec(select(User).where(User.username == username, User.tenant_id == current_user.tenant_id)).first() user = session.exec(select(User).where(User.username == username, User.tenant_id == current_user.tenant_id)).first()
if not user: if not user:

View File

@ -1,3 +1,3 @@
ALGORITHM=HS256 ALGORITHM=HS256
DATABASE_URL=sqlite:///:memory: DATABASE_URL=sqlite:///test.sqlite3
SECRET_KEY=your_secret_key SECRET_KEY=your_secret_key