From a46bbc54cd4565baa1e3a6ac5cc03fa09b6e3fb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Ram=C3=ADrez?= Date: Wed, 8 Apr 2020 07:41:53 +0200 Subject: [PATCH] :white_check_mark: Update database setup for tests (#1226) * :card_file_box: Update database setup for tests * :white_check_mark: Add pragmas and update db handling for tests --- .../test_sql_databases/test_sql_databases.py | 14 ++++++++++---- .../test_sql_databases_middleware.py | 15 +++++++++++---- .../test_testing_databases.py | 17 ++++++++++------- 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/tests/test_tutorial/test_sql_databases/test_sql_databases.py b/tests/test_tutorial/test_sql_databases/test_sql_databases.py index d7b6e1b3a..69092889c 100644 --- a/tests/test_tutorial/test_sql_databases/test_sql_databases.py +++ b/tests/test_tutorial/test_sql_databases/test_sql_databases.py @@ -1,3 +1,4 @@ +import importlib from pathlib import Path import pytest @@ -283,13 +284,18 @@ openapi_schema = { @pytest.fixture(scope="module") def client(): + test_db = Path("./sql_app.db") + if test_db.is_file(): # pragma: nocover + test_db.unlink() # Import while creating the client to create the DB after starting the test session - from sql_databases.sql_app.main import app + from sql_databases.sql_app import main - test_db = Path("./sql_app.db") - with TestClient(app) as c: + # Ensure import side effects are re-executed + importlib.reload(main) + with TestClient(main.app) as c: yield c - test_db.unlink() + if test_db.is_file(): # pragma: nocover + test_db.unlink() def test_openapi_schema(client): diff --git a/tests/test_tutorial/test_sql_databases/test_sql_databases_middleware.py b/tests/test_tutorial/test_sql_databases/test_sql_databases_middleware.py index d26a442b7..6b4ed567e 100644 --- a/tests/test_tutorial/test_sql_databases/test_sql_databases_middleware.py +++ b/tests/test_tutorial/test_sql_databases/test_sql_databases_middleware.py @@ -1,3 +1,4 @@ +import importlib from pathlib import Path import pytest @@ -283,13 +284,19 @@ openapi_schema = { @pytest.fixture(scope="module") def client(): + test_db = Path("./sql_app.db") + if test_db.is_file(): # pragma: nocover + test_db.unlink() # Import while creating the client to create the DB after starting the test session - from sql_databases.sql_app.alt_main import app + from sql_databases.sql_app import alt_main - test_db = Path("./sql_app.db") - with TestClient(app) as c: + # Ensure import side effects are re-executed + importlib.reload(alt_main) + + with TestClient(alt_main.app) as c: yield c - test_db.unlink() + if test_db.is_file(): # pragma: nocover + test_db.unlink() def test_openapi_schema(client): diff --git a/tests/test_tutorial/test_sql_databases/test_testing_databases.py b/tests/test_tutorial/test_sql_databases/test_testing_databases.py index fae66d3b8..83a156b85 100644 --- a/tests/test_tutorial/test_sql_databases/test_testing_databases.py +++ b/tests/test_tutorial/test_sql_databases/test_testing_databases.py @@ -1,13 +1,16 @@ +import importlib from pathlib import Path def test_testing_dbs(): + test_db = Path("./test.db") + if test_db.is_file(): # pragma: nocover + test_db.unlink() # Import while creating the client to create the DB after starting the test session - from sql_databases.sql_app.tests.test_sql_app import test_create_user + from sql_databases.sql_app.tests import test_sql_app - test_db = Path("./test.db") - app_db = Path("./sql_app.db") - test_create_user() - test_db.unlink() - if app_db.is_file(): # pragma: nocover - app_db.unlink() + # Ensure import side effects are re-executed + importlib.reload(test_sql_app) + test_sql_app.test_create_user() + if test_db.is_file(): # pragma: nocover + test_db.unlink()