Register debug group in main.py with districts subcommand and tests

This commit is contained in:
Viktor Barzin 2026-02-22 15:12:05 +00:00
parent 7a35489f35
commit 2196e256f4
No known key found for this signature in database
GPG key ID: 0EB088298288D958
2 changed files with 80 additions and 0 deletions

View 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