backend changes
This commit is contained in:
@@ -2,8 +2,9 @@ import os
|
||||
from typing import Any, Generator
|
||||
|
||||
import pytest
|
||||
import databases
|
||||
from src.db import Base, get_db
|
||||
from src.main import app as _app
|
||||
from src import get_app
|
||||
from fastapi import FastAPI
|
||||
from fastapi.testclient import TestClient
|
||||
from sqlalchemy import create_engine
|
||||
@@ -14,9 +15,7 @@ from sqlalchemy.orm import sessionmaker
|
||||
# database engines
|
||||
SQLALCHEMY_DATABASE_URL = os.getenv('TEST_DATABASE_URL', "sqlite://")
|
||||
|
||||
engine = create_engine(
|
||||
SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False}
|
||||
)
|
||||
engine = create_engine(SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False})
|
||||
|
||||
Session = sessionmaker(autocommit=False, autoflush=False, bind=engine)
|
||||
|
||||
@@ -26,7 +25,9 @@ def app() -> Generator[FastAPI, Any, None]:
|
||||
"""
|
||||
Create a fresh database on each test case.
|
||||
"""
|
||||
print(list(Base.metadata.tables.keys()))
|
||||
Base.metadata.create_all(engine) # Create the tables.
|
||||
_app = get_app(databases.Database(SQLALCHEMY_DATABASE_URL))
|
||||
yield _app
|
||||
Base.metadata.drop_all(engine)
|
||||
|
||||
@@ -61,7 +62,6 @@ def client(app: FastAPI, db_session: Session) -> Generator[TestClient, Any, None
|
||||
Create a new FastAPI TestClient that uses the `db_session` fixture to override
|
||||
the `get_db` dependency that is injected into routes.
|
||||
"""
|
||||
|
||||
def _get_test_db():
|
||||
try:
|
||||
yield db_session
|
||||
|
||||
@@ -1,11 +1,24 @@
|
||||
from backend.src.db import DbSession
|
||||
from src.db import DbSession
|
||||
from src.schemas import Session
|
||||
from fastapi import FastAPI
|
||||
from src.db import DbSession
|
||||
from fastapi.testclient import TestClient
|
||||
from src.users import UserCreate, User
|
||||
from fastapi.encoders import jsonable_encoder
|
||||
|
||||
#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
def test_session_create(app: FastAPI, db_session: DbSession, client: TestClient):
|
||||
pass
|
||||
# Tests to write
|
||||
# - User Flow: register, verify, login
|
||||
# - create, list, delete session
|
||||
# - friendship: query user by mail, create friend request, accept
|
||||
def test_register_user(app: FastAPI, db_session: DbSession, client: TestClient):
|
||||
req_data = jsonable_encoder(UserCreate(email="test@abc.com", password="password"))
|
||||
response = client.post("/auth/register", json=req_data)
|
||||
print(response.json())
|
||||
resp_user = User(**response.json())
|
||||
assert response.status_code == 201
|
||||
assert resp_user.is_active
|
||||
assert not resp_user.is_superuser
|
||||
assert not resp_user.is_verified
|
||||
|
||||
Reference in New Issue
Block a user