RED: First shot of testing

This commit is contained in:
Colin Goutte 2023-08-25 11:54:37 +02:00
parent c1386d0d35
commit 7b6c26dbdc
2 changed files with 55 additions and 1 deletions

View File

@ -6,10 +6,13 @@ name = "pypi"
[packages]
fastapi = "*"
uvicorn = "*"
sqlalchemy = "<2.0.0"
wheel = "*"
[dev-packages]
pytest = "*"
selenium = "*"
httpx = "*"
[requires]
python_version = "3.12"
python_version = "3.11"

51
test_sql_database.py Normal file
View File

@ -0,0 +1,51 @@
from fastapi.testclient import TestClient
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.pool import StaticPool
from database import Base
from main import app, get_db
from models import Movie
SQLALCHEMY_DATABASE_URL = "sqlite://"
engine = create_engine(
SQLALCHEMY_DATABASE_URL,
connect_args={"check_same_thread": False},
poolclass=StaticPool,
)
TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base.metadata.create_all(bind=engine)
def override_get_db():
try:
db = TestingSessionLocal()
yield db
finally:
db.close()
app.dependency_overrides[get_db] = override_get_db
client = TestClient(app)
def test_create_moviem_models():
import random
name = f"rand_{random.randint(1, 1000)}"
movie = Movie(name=name)
def test_create_movie_api():
import random
name = f"rand_{random.randint(1, 1000)}"
response = client.post("movie", {"name": name})
assert response.status == 200
movie_id = response.json()["id"]
response = client.get("movie", movie_id)
assert response.json()["name"] == name