Files
apex.ermnvldmr.com/tests/test_cli.py
T

39 lines
1.4 KiB
Python

# tests/test_cli.py
import os, subprocess, sys, unittest
ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
def run(*args):
return subprocess.run([sys.executable, os.path.join(ROOT, "apex"), *args],
text=True, capture_output=True)
class TestCli(unittest.TestCase):
def test_help_lists_and_exits_zero(self):
r = run("--help")
self.assertEqual(r.returncode, 0)
self.assertIn("Available actions", r.stdout)
def test_compose_alias_uses_canonical_action(self):
canonical = run("composition/run", "--help")
self.assertEqual(canonical.returncode, 0)
alias = run("compose", "--help")
self.assertEqual(alias.returncode, 0)
self.assertEqual(alias.stdout, canonical.stdout)
def test_configuration_must_be_selected_explicitly(self):
listing = run("--help")
self.assertIn("config/hardening", listing.stdout)
self.assertIn("repository/chown", listing.stdout)
for command in ("configure", "config"):
result = run(command)
self.assertEqual(result.returncode, 1)
self.assertIn("Unknown action", result.stderr)
def test_unknown_action_exits_one(self):
r = run("no/such")
self.assertEqual(r.returncode, 1)
self.assertIn("Unknown action", r.stderr)
if __name__ == "__main__":
unittest.main()