From c338d5df2767a5223f7c1e4d07a26016d8969501 Mon Sep 17 00:00:00 2001 From: wpk-nist-gov Date: Wed, 19 Feb 2025 11:19:32 -0500 Subject: [PATCH] fix: bugfix in pre-commit hooks with excluding header explicitly in environments --- src/pyproject2conda/cli.py | 2 +- tests/test_config.py | 66 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/src/pyproject2conda/cli.py b/src/pyproject2conda/cli.py index 7d4629d..d1bd3b5 100644 --- a/src/pyproject2conda/cli.py +++ b/src/pyproject2conda/cli.py @@ -435,7 +435,7 @@ def _get_header_cmd( if custom_command is not None: return custom_command - if "PRE_COMMIT" in os.environ: + if (header is None or header) and ("PRE_COMMIT" in os.environ): return "pre-commit" if header is None: diff --git a/tests/test_config.py b/tests/test_config.py index 07de5e0..9c98335 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -129,6 +129,18 @@ def simple_toml() -> str: [tool.pyproject2conda.envs.both] groups = "thing" + [tool.pyproject2conda.envs.header0] + extras = [] + style = "yaml" + python = [] + header = false + + + [tool.pyproject2conda.envs.header1] + extras = [] + style = "yaml" + python = [] + header = true [[tool.pyproject2conda.overrides]] envs = ["both"] @@ -194,6 +206,60 @@ def test_option_override_base(simple_config: Config) -> None: ) +def test_option_override_header0(simple_config: Config) -> None: + output = list(simple_config.iter_envs(envs=["header0"])) + + assert output[0] == ( + "yaml", + { + "extras": [], + "groups": [], + "extras_or_groups": [], + "sort": True, + "skip_package": False, + "pip_only": False, + "header": False, + "custom_command": None, + "overwrite": "check", + "verbose": None, + "reqs": None, + "deps": None, + "name": None, + "channels": ["conda-forge"], + "allow_empty": False, + "remove_whitespace": True, + "output": "hello-header0.yaml", + }, + ) + + +def test_option_override_header1(simple_config: Config) -> None: + output = list(simple_config.iter_envs(envs=["header1"])) + + assert output[0] == ( + "yaml", + { + "extras": [], + "groups": [], + "extras_or_groups": [], + "sort": True, + "skip_package": False, + "pip_only": False, + "header": True, + "custom_command": None, + "overwrite": "check", + "verbose": None, + "reqs": None, + "deps": None, + "name": None, + "channels": ["conda-forge"], + "allow_empty": False, + "remove_whitespace": True, + "output": "hello-header1.yaml", + }, + ) + + def test_option_override_base_reqs(simple_config: Config) -> None: output = list(simple_config.iter_envs(envs=["base"], reqs=["-e ."]))