File tree Expand file tree Collapse file tree 3 files changed +39
-0
lines changed
Expand file tree Collapse file tree 3 files changed +39
-0
lines changed Original file line number Diff line number Diff line change 1+ from app .api .api_v1 .endpoints import login
2+ api_router .include_router (login .router , prefix = "/auth" , tags = ["auth" ])
Original file line number Diff line number Diff line change 1+ from fastapi import APIRouter , HTTPException
2+ from pydantic import BaseModel
3+
4+ router = APIRouter ()
5+
6+ class LoginRequest (BaseModel ):
7+ email : str
8+ password : str
9+ is_verified : bool = False
10+
11+ @router .post ("/login" )
12+ def login (request : LoginRequest ):
13+ if not request .is_verified :
14+ raise HTTPException (status_code = 403 , detail = "Email not verified" )
15+ return {"message" : f"Welcome { request .email } " }
Original file line number Diff line number Diff line change 1+ from fastapi .testclient import TestClient
2+ from app .main import app
3+
4+ client = TestClient (app )
5+
6+ def test_login_verified_user ():
7+ response = client .post ("/auth/login" , json = {
8+ "email" : "test@example.com" ,
9+ "password" : "secure" ,
10+ "is_verified" : True
11+ })
12+ assert response .status_code == 200
13+ assert "Welcome" in response .json ()["message" ]
14+
15+ def test_login_unverified_user ():
16+ response = client .post ("/auth/login" , json = {
17+ "email" : "test@example.com" ,
18+ "password" : "secure" ,
19+ "is_verified" : False
20+ })
21+ assert response .status_code == 403
22+ assert response .json ()["detail" ] == "Email not verified"
You can’t perform that action at this time.
0 commit comments