From 90316a1cca281ac36062da946374145bda421d52 Mon Sep 17 00:00:00 2001 From: wpbonelli Date: Mon, 10 Jun 2024 15:12:43 -0400 Subject: [PATCH] fix(fixtures): don't use square brackets in tempdir paths (#160) Multiple programs don't like this: gridgen, iris --- autotest/test_fixtures.py | 20 ++++++++++++++++---- modflow_devtools/fixtures.py | 10 ++++++++-- modflow_devtools/misc.py | 3 +-- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/autotest/test_fixtures.py b/autotest/test_fixtures.py index b9fa5b5..7470745 100644 --- a/autotest/test_fixtures.py +++ b/autotest/test_fixtures.py @@ -37,11 +37,23 @@ def test_function_scoped_tmpdir_slash_in_name(function_tmpdir, name): # node name might have slashes if test function is parametrized # (e.g., test_function_scoped_tmpdir_slash_in_name[a/slash]) - replaced1 = name.replace("/", "_").replace("\\", "_").replace(":", "_") - replaced2 = name.replace("/", "_").replace("\\", "__").replace(":", "_") + replaced1 = ( + name.replace("/", "_") + .replace("\\", "_") + .replace(":", "_") + .replace("[", "") + .replace("]", "") + ) + replaced2 = ( + name.replace("/", "_") + .replace("\\", "__") + .replace(":", "_") + .replace("[", "") + .replace("]", "") + ) assert ( - f"{inspect.currentframe().f_code.co_name}[{replaced1}]" in function_tmpdir.stem - or f"{inspect.currentframe().f_code.co_name}[{replaced2}]" + f"{inspect.currentframe().f_code.co_name}_{replaced1}_" in function_tmpdir.stem + or f"{inspect.currentframe().f_code.co_name}_{replaced2}_" in function_tmpdir.stem ) diff --git a/modflow_devtools/fixtures.py b/modflow_devtools/fixtures.py index 963fa4e..3e6dc12 100644 --- a/modflow_devtools/fixtures.py +++ b/modflow_devtools/fixtures.py @@ -16,8 +16,14 @@ @pytest.fixture(scope="function") def function_tmpdir(tmpdir_factory, request) -> Generator[Path, None, None]: - node = request.node.name.replace("/", "_").replace("\\", "_").replace(":", "_") - temp = Path(tmpdir_factory.mktemp(node)) + node_name = ( + request.node.name.replace("/", "_") + .replace("\\", "_") + .replace(":", "_") + .replace("[", "_") + .replace("]", "_") + ) + temp = Path(tmpdir_factory.mktemp(node_name)) yield Path(temp) keep = request.config.option.KEEP diff --git a/modflow_devtools/misc.py b/modflow_devtools/misc.py index 08a03f4..882a9ff 100644 --- a/modflow_devtools/misc.py +++ b/modflow_devtools/misc.py @@ -2,6 +2,7 @@ import socket import sys import traceback +from _warnings import warn from ast import literal_eval from contextlib import contextmanager from functools import wraps @@ -16,8 +17,6 @@ from urllib import request from urllib.error import URLError -from _warnings import warn - @contextmanager def set_dir(path: PathLike):