fastapi
50 строк · 1.2 Кб
1from fastapi.testclient import TestClient2from sqlalchemy import create_engine3from sqlalchemy.orm import sessionmaker4from sqlalchemy.pool import StaticPool5
6from ..database import Base7from ..main import app, get_db8
9SQLALCHEMY_DATABASE_URL = "sqlite://"10
11engine = create_engine(12SQLALCHEMY_DATABASE_URL,13connect_args={"check_same_thread": False},14poolclass=StaticPool,15)
16TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)17
18
19Base.metadata.create_all(bind=engine)20
21
22def override_get_db():23try:24db = TestingSessionLocal()25yield db26finally:27db.close()28
29
30app.dependency_overrides[get_db] = override_get_db31
32client = TestClient(app)33
34
35def test_create_user():36response = client.post(37"/users/",38json={"email": "deadpool@example.com", "password": "chimichangas4life"},39)40assert response.status_code == 200, response.text41data = response.json()42assert data["email"] == "deadpool@example.com"43assert "id" in data44user_id = data["id"]45
46response = client.get(f"/users/{user_id}")47assert response.status_code == 200, response.text48data = response.json()49assert data["email"] == "deadpool@example.com"50assert data["id"] == user_id51