feat: add Braille spinner, shell completions, and TUI polish
- Add with_spinner context manager with cyan Braille animation for human mode. - Wrap all query/execution commands in cli.py with loading spinners. - Integrate shtab: auto-install shell completions during init for zsh/bash. - Add `completion` subcommand for manual script generation. - Fix stale output_format default in DEFAULT_CONFIG (json → tui). - Add help descriptions to all second-level subcommands. - Version 2.0.4. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -20,11 +20,14 @@ class CLITestCase(unittest.TestCase):
|
||||
def test_init_dispatches(self):
|
||||
captured = {}
|
||||
with patch.object(cli, "ensure_init_files", return_value={"force": True, "root": "/tmp/ch"}), patch.object(
|
||||
cli, "install_shell_completion", return_value={"shell": "zsh", "installed": True, "path": "/tmp/ch/_coinhunter"}
|
||||
), patch.object(
|
||||
cli, "print_output", side_effect=lambda payload, **kwargs: captured.setdefault("payload", payload)
|
||||
):
|
||||
result = cli.main(["init", "--force"])
|
||||
self.assertEqual(result, 0)
|
||||
self.assertTrue(captured["payload"]["force"])
|
||||
self.assertIn("completion", captured["payload"])
|
||||
|
||||
def test_old_command_is_rejected(self):
|
||||
with self.assertRaises(SystemExit):
|
||||
|
||||
Reference in New Issue
Block a user