Default interactive CLI to menu
This commit is contained in:
@@ -4,6 +4,7 @@ import json
|
||||
import tempfile
|
||||
import unittest
|
||||
import os
|
||||
from io import StringIO
|
||||
from pathlib import Path
|
||||
from unittest.mock import patch
|
||||
from zipfile import ZipFile
|
||||
@@ -180,6 +181,26 @@ state_dir = ".state"
|
||||
self.assertEqual(runtime.state_root, root / "explicit-state")
|
||||
self.assertEqual(runtime.selected_profile.id, "linux")
|
||||
|
||||
def test_no_args_prints_help_when_not_interactive(self) -> None:
|
||||
output = StringIO()
|
||||
with patch("sys.stdin.isatty", return_value=False), patch("sys.stdout", output):
|
||||
status = run([])
|
||||
|
||||
self.assertEqual(status, 2)
|
||||
self.assertIn("usage: plugin-helper", output.getvalue())
|
||||
self.assertIn("menu", output.getvalue())
|
||||
|
||||
def test_no_command_defaults_to_menu_when_interactive(self) -> None:
|
||||
with (
|
||||
patch("sys.stdin.isatty", return_value=True),
|
||||
patch("sys.stdout.isatty", return_value=True),
|
||||
patch("plugin_helper.cli._run_menu", return_value=0) as run_menu,
|
||||
):
|
||||
status = run(["--profile", "linux"])
|
||||
|
||||
self.assertEqual(status, 0)
|
||||
run_menu.assert_called_once()
|
||||
|
||||
def test_run_ipa_timeout_returns_control(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
result = _run_ipa(
|
||||
|
||||
Reference in New Issue
Block a user