Require runnable dispatcher subcommands (#1585)

* Require runnable dispatcher subcommands

* Use modern dispatcher test loader
This commit is contained in:
red person
2026-06-03 02:56:56 +03:00
committed by GitHub
parent e68d0448b8
commit 15a3b71802
2 changed files with 30 additions and 2 deletions
+24
View File
@@ -0,0 +1,24 @@
import importlib.machinery
import importlib.util
from pathlib import Path
def _load_dispatcher():
path = Path(__file__).resolve().parent.parent / "scripts" / "odysseus"
loader = importlib.machinery.SourceFileLoader("odysseus_dispatcher_under_test", str(path))
spec = importlib.util.spec_from_loader(loader.name, loader)
module = importlib.util.module_from_spec(spec)
loader.exec_module(module)
return module
def test_is_runnable_subcommand_requires_executable_file(tmp_path):
cli = _load_dispatcher()
sub = tmp_path / "odysseus-demo"
sub.write_text("#!/bin/sh\n")
sub.chmod(0o644)
assert cli._is_runnable_subcommand(sub) is False
sub.chmod(0o755)
assert cli._is_runnable_subcommand(sub) is True