From be903b49006e9fcdcb2d5e73431762411b94df86 Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Mon, 29 Dec 2025 18:24:44 +0100 Subject: ensure tracks/users folders exist Since we don't use parents=True anymore to create the folders (which I think is good), we now need to ensure that those exist. So 1. when fietsboek starts up, we create those folders, and 2. when we delete them in the tests, we recreate them. --- fietsboek/__init__.py | 13 +++++++++++++ tests/conftest.py | 2 ++ 2 files changed, 15 insertions(+) diff --git a/fietsboek/__init__.py b/fietsboek/__init__.py index b533e97..737ee53 100644 --- a/fietsboek/__init__.py +++ b/fietsboek/__init__.py @@ -143,6 +143,18 @@ def check_db_engine(sqlalchemy_uri: str): ) +def create_data_folders(data_dir: str): + """Creates the subfolders of the data directory. + + :param data_dir: Path to the data directory, from the config. + """ + ddir = Path(data_dir) + LOGGER.debug("Creating %s/tracks/", ddir) + (ddir / "tracks").mkdir(exist_ok=True) + LOGGER.debug("Creating %s/users/", ddir) + (ddir / "users").mkdir(exist_ok=True) + + def main(global_config, **settings): """This function returns a Pyramid WSGI application.""" # Avoid a circular import by not importing at the top level @@ -157,6 +169,7 @@ def main(global_config, **settings): settings["jinja2.newstyle"] = True check_db_engine(parsed_config.sqlalchemy_url) + create_data_folders(parsed_config.data_dir) def data_manager(request): data_dir = Path(request.config.data_dir) diff --git a/tests/conftest.py b/tests/conftest.py index b49dad2..732c8d2 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -76,8 +76,10 @@ def _cleanup_data(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() @pytest.fixture(scope='module') def app(app_settings, dbengine, tmp_path_factory): -- cgit v1.2.3