Public Access
DEVX-9: fix: configurable task prefix and CWD-relative DOCS_DIR
This commit is contained in:
@@ -152,6 +152,89 @@ class TestMain:
|
||||
assert "task ID" in result.output
|
||||
|
||||
|
||||
class TestCustomPrefix:
|
||||
"""Tests for custom task ID prefix (e.g., GRM-N instead of DEVX-N).
|
||||
|
||||
The prefix is configured via the DEVX_TASK_PREFIX environment variable.
|
||||
This is critical for consumer projects like GRM that use their own
|
||||
Vikunja project with a different identifier prefix.
|
||||
"""
|
||||
|
||||
def _write_msg(self, content: str) -> str:
|
||||
fd, path = tempfile.mkstemp()
|
||||
with os.fdopen(fd, "w") as f:
|
||||
f.write(content)
|
||||
return path
|
||||
|
||||
@patch.dict("os.environ", {"DEVX_TASK_PREFIX": "GRM"})
|
||||
def test_master_accepts_grm_prefix(self) -> None:
|
||||
"""Master branch accepts GRM-N: prefix when DEVX_TASK_PREFIX=GRM."""
|
||||
import importlib
|
||||
|
||||
import devx.ci.validate_commit_msg as vcm
|
||||
import devx.config
|
||||
|
||||
importlib.reload(devx.config)
|
||||
importlib.reload(vcm)
|
||||
try:
|
||||
msg_path = self._write_msg("GRM-66: fix: add scripts/** to infrastructure")
|
||||
with patch("devx.ci.validate_commit_msg.get_branch", return_value="master"):
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(vcm.main, [msg_path])
|
||||
assert result.exit_code == 0
|
||||
os.unlink(msg_path)
|
||||
finally:
|
||||
os.environ.pop("DEVX_TASK_PREFIX", None)
|
||||
importlib.reload(devx.config)
|
||||
importlib.reload(vcm)
|
||||
|
||||
@patch.dict("os.environ", {"DEVX_TASK_PREFIX": "GRM"})
|
||||
def test_master_rejects_devx_prefix_when_grm_configured(self) -> None:
|
||||
"""Master branch rejects DEVX-N: prefix when DEVX_TASK_PREFIX=GRM."""
|
||||
import importlib
|
||||
|
||||
import devx.ci.validate_commit_msg as vcm
|
||||
import devx.config
|
||||
|
||||
importlib.reload(devx.config)
|
||||
importlib.reload(vcm)
|
||||
try:
|
||||
msg_path = self._write_msg("DEVX-8: fix: wrong prefix")
|
||||
with patch("devx.ci.validate_commit_msg.get_branch", return_value="master"):
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(vcm.main, [msg_path])
|
||||
assert result.exit_code == 1
|
||||
assert "GRM-N" in result.output
|
||||
os.unlink(msg_path)
|
||||
finally:
|
||||
os.environ.pop("DEVX_TASK_PREFIX", None)
|
||||
importlib.reload(devx.config)
|
||||
importlib.reload(vcm)
|
||||
|
||||
@patch.dict("os.environ", {"DEVX_TASK_PREFIX": "GRM"})
|
||||
def test_feature_branch_rejects_grm_prefix(self) -> None:
|
||||
"""Feature branch rejects GRM-N: prefix when DEVX_TASK_PREFIX=GRM."""
|
||||
import importlib
|
||||
|
||||
import devx.ci.validate_commit_msg as vcm
|
||||
import devx.config
|
||||
|
||||
importlib.reload(devx.config)
|
||||
importlib.reload(vcm)
|
||||
try:
|
||||
msg_path = self._write_msg("GRM-66: fix: should not have prefix on branch")
|
||||
with patch("devx.ci.validate_commit_msg.get_branch", return_value="GRM-66-fix"):
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(vcm.main, [msg_path])
|
||||
assert result.exit_code == 1
|
||||
assert "task ID" in result.output
|
||||
os.unlink(msg_path)
|
||||
finally:
|
||||
os.environ.pop("DEVX_TASK_PREFIX", None)
|
||||
importlib.reload(devx.config)
|
||||
importlib.reload(vcm)
|
||||
|
||||
|
||||
def test_main_module_block() -> None:
|
||||
import tempfile
|
||||
|
||||
|
||||
Reference in New Issue
Block a user