From 6dce239b1e0b2d0c7b9213c2f406b6d93db8bed8 Mon Sep 17 00:00:00 2001 From: Colin Goutte Date: Fri, 25 Aug 2023 14:23:02 +0200 Subject: [PATCH] DB fixes --- Makefile | 6 +++--- dev.py | 2 ++ .../test_functionnal.py | 0 .../test_guidelines.py | 4 +++- test_overview.py => utests/test_overview.py | 0 .../test_sql_database.py | 21 +++++++++++++++---- 6 files changed, 25 insertions(+), 8 deletions(-) rename functionnal_test.py => ftests/test_functionnal.py (100%) rename test_guidelines.py => ftests/test_guidelines.py (92%) rename test_overview.py => utests/test_overview.py (100%) rename test_sql_database.py => utests/test_sql_database.py (77%) diff --git a/Makefile b/Makefile index d2b2955..52ab0fb 100644 --- a/Makefile +++ b/Makefile @@ -12,12 +12,12 @@ run_dev: git ls-files | entr -r pipenv run python dev.py tdd: - git ls-files | entr pipenv run pytest --lf --nf - git ls-files | entr make functionnal_tests + git ls-files | entr pipenv run pytest --lf --nf test_* + # git ls-files | entr make functionnal_tests test: - pipenv run pytest $(opt) + pipenv run pytest $(opt) utests functionnal_tests: pipenv run python -m pytest functionnal_test.py diff --git a/dev.py b/dev.py index 6cb807a..77b0842 100644 --- a/dev.py +++ b/dev.py @@ -28,12 +28,14 @@ async def root(): @app.post("/movies/") async def create_movie(name: str = "", db: Session = Depends(get_db)): out = {} + assert name movie = models.Movie() movie.name = name db.add(movie) db.flush() db.commit() db.refresh(movie) + breakpoint() out = {"message": f"Created {movie.name} XX", "id": movie.id} return out diff --git a/functionnal_test.py b/ftests/test_functionnal.py similarity index 100% rename from functionnal_test.py rename to ftests/test_functionnal.py diff --git a/test_guidelines.py b/ftests/test_guidelines.py similarity index 92% rename from test_guidelines.py rename to ftests/test_guidelines.py index 7f18445..e908435 100644 --- a/test_guidelines.py +++ b/ftests/test_guidelines.py @@ -33,7 +33,9 @@ class TestGuidelines(unittest.TestCase): assert target.is_file() - @unittest.skipIf(os.environ.get("already_in_venv"), "Avoid self call infinite loop") + @unittest.skipIf( + True or os.environ.get("already_in_venv"), "Avoid self call infinite loop" + ) def test_environment(self): """We want to make sure that the project is virtualenv compatible. we may provie and extra makefile for that (and automate build phase) diff --git a/test_overview.py b/utests/test_overview.py similarity index 100% rename from test_overview.py rename to utests/test_overview.py diff --git a/test_sql_database.py b/utests/test_sql_database.py similarity index 77% rename from test_sql_database.py rename to utests/test_sql_database.py index b9526a0..77c1cd8 100644 --- a/test_sql_database.py +++ b/utests/test_sql_database.py @@ -7,7 +7,11 @@ from database import Base from dev import app, get_db from models import Movie -SQLALCHEMY_DATABASE_URL = "sqlite://" +import pytest +import crud +import contextlib + +SQLALCHEMY_DATABASE_URL = "sqlite:///:memory:" engine = create_engine( SQLALCHEMY_DATABASE_URL, @@ -28,6 +32,11 @@ def override_get_db(): db.close() +@contextlib.contextmanager +def db_context(): + yield from override_get_db() + + app.dependency_overrides[get_db] = override_get_db client = TestClient(app) @@ -41,12 +50,16 @@ def test_create_moviem_models(): assert movie.name == name -import pytest +def test_sample_crud(): + import random -import pytest + name = f"rand_{random.randint(1, 1000)}" + + with db_context() as db: + movie = crud.create_movie(db, name=name) + assert movie.name == name -@pytest.mark.xfail def test_create_movie_api(): import random