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