Register debug group in main.py with districts subcommand and tests
This commit is contained in:
parent
7a35489f35
commit
2196e256f4
2 changed files with 80 additions and 0 deletions
56
tests/unit/test_debug_cli.py
Normal file
56
tests/unit/test_debug_cli.py
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
"""Tests for the debug CLI."""
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from click.testing import CliRunner
|
||||
|
||||
from main import cli
|
||||
|
||||
|
||||
class TestDebugGroup:
|
||||
"""Tests for the debug command group."""
|
||||
|
||||
@patch("main.engine", new_callable=MagicMock)
|
||||
def test_debug_help_shows_subcommands(self, mock_engine: MagicMock) -> None:
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(cli, ["debug", "--help"])
|
||||
assert result.exit_code == 0
|
||||
assert "districts" in result.output
|
||||
|
||||
@patch("main.engine", new_callable=MagicMock)
|
||||
def test_debug_requires_user_email(self, mock_engine: MagicMock) -> None:
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(cli, ["debug", "districts", "list"])
|
||||
assert result.exit_code != 0
|
||||
assert "user-email" in result.output.lower() or "Missing" in result.output
|
||||
|
||||
|
||||
class TestDistrictsCommand:
|
||||
"""Tests for debug districts subcommand."""
|
||||
|
||||
@patch("cli.districts.district_service.get_all_districts")
|
||||
@patch("main.engine", new_callable=MagicMock)
|
||||
def test_list_districts_direct(
|
||||
self, mock_engine: MagicMock, mock_get: MagicMock
|
||||
) -> None:
|
||||
mock_get.return_value = {"London": "R1", "Camden": "R2"}
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(
|
||||
cli, ["debug", "-u", "test@example.com", "districts", "list"]
|
||||
)
|
||||
assert result.exit_code == 0
|
||||
assert "London" in result.output
|
||||
|
||||
@patch("cli.districts.district_service.get_all_districts")
|
||||
@patch("main.engine", new_callable=MagicMock)
|
||||
def test_list_districts_json(
|
||||
self, mock_engine: MagicMock, mock_get: MagicMock
|
||||
) -> None:
|
||||
mock_get.return_value = {"London": "R1"}
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(
|
||||
cli, ["debug", "-u", "test@example.com", "--json", "districts", "list"]
|
||||
)
|
||||
assert result.exit_code == 0
|
||||
import json
|
||||
data = json.loads(result.output)
|
||||
assert "London" in data
|
||||
Loading…
Add table
Add a link
Reference in a new issue