RED: First shot of testing
This commit is contained in:
parent
c1386d0d35
commit
7b6c26dbdc
5
Pipfile
5
Pipfile
|
@ -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"
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue