diff options
| author | Daniel Schadt <kingdread@gmx.de> | 2026-01-03 19:47:44 +0100 |
|---|---|---|
| committer | Daniel Schadt <kingdread@gmx.de> | 2026-01-03 19:47:44 +0100 |
| commit | 20de99b3347e7f9810199a588a4955cb8a0cb982 (patch) | |
| tree | 4b3520a0025c952b7720c450e5c0a4da88ec8288 /tests/conftest.py | |
| parent | c963f56577d10c2811a48500b6d1bb3944360289 (diff) | |
| parent | e68ecfbb694c714674ddcd72cb727f5662315b5e (diff) | |
| download | fietsboek-20de99b3347e7f9810199a588a4955cb8a0cb982.tar.gz fietsboek-20de99b3347e7f9810199a588a4955cb8a0cb982.tar.bz2 fietsboek-20de99b3347e7f9810199a588a4955cb8a0cb982.zip | |
Merge branch 'journeys'
Diffstat (limited to 'tests/conftest.py')
| -rw-r--r-- | tests/conftest.py | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/tests/conftest.py b/tests/conftest.py index 732c8d2..add3b3f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -60,26 +60,31 @@ def dbengine(app_settings, ini_file): def data_manager(app_settings): return DataManager(Path(app_settings["fietsboek.data_dir"])) + +def clean_directory_content(path: Path): + if path.is_dir(): + shutil.rmtree(path) + path.mkdir() + + @pytest.fixture(autouse=True) def _cleanup_data(app_settings): yield engine = models.get_engine(app_settings) - db_meta = inspect(engine) + # Load all table names beforehand, as has_table() would cause lock conflicts + tables = inspect(engine).get_table_names() with engine.begin() as connection: for table in reversed(Base.metadata.sorted_tables): # The unit tests don't always set up the tables, so be gentle when # tearing them down - if db_meta.has_table(table.name): + if table.name in tables: connection.execute(table.delete()) # The unit tests also often don't have a data directory, so be gentle here as well if "fietsboek.data_dir" in app_settings: data_dir = Path(app_settings["fietsboek.data_dir"]) - if (data_dir / "tracks").is_dir(): - shutil.rmtree(data_dir / "tracks") - (data_dir / "tracks").mkdir() - if (data_dir / "users").is_dir(): - shutil.rmtree(data_dir / "users") - (data_dir / "users").mkdir() + clean_directory_content(data_dir / "tracks") + clean_directory_content(data_dir / "users") + clean_directory_content(data_dir / "journeys") @pytest.fixture(scope='module') def app(app_settings, dbengine, tmp_path_factory): |
