refactor: replace legacy CLI with Django command surface
Retire the old YAML and cron oriented pobsync CLI commands and expose a SQL-first Django-backed command surface instead. Add schedule and retention management commands, move shared defaults/parsing out of legacy commands, remove obsolete command modules, and update documentation and tests for the new workflow.
This commit is contained in:
41
src/pobsync_backend/tests/test_console_entrypoint.py
Normal file
41
src/pobsync_backend/tests/test_console_entrypoint.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from io import StringIO
|
||||
from unittest.mock import patch
|
||||
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
from pobsync.cli import main
|
||||
|
||||
|
||||
class ConsoleEntrypointTests(SimpleTestCase):
|
||||
def test_maps_backup_alias_to_django_command(self) -> None:
|
||||
with patch("pobsync.cli.execute_from_command_line") as execute:
|
||||
exit_code = main(["backup", "web-01", "--dry-run"])
|
||||
|
||||
self.assertEqual(exit_code, 0)
|
||||
execute.assert_called_once_with(["pobsync", "run_pobsync_backup", "web-01", "--dry-run"])
|
||||
|
||||
def test_unknown_command_returns_usage_error(self) -> None:
|
||||
stderr = StringIO()
|
||||
with patch("sys.stderr", stderr):
|
||||
exit_code = main(["run-scheduled", "web-01"])
|
||||
|
||||
self.assertEqual(exit_code, 2)
|
||||
self.assertIn("Unknown pobsync command", stderr.getvalue())
|
||||
|
||||
def test_django_passthrough_keeps_management_command_name(self) -> None:
|
||||
with patch("pobsync.cli.execute_from_command_line") as execute:
|
||||
exit_code = main(["django", "check"])
|
||||
|
||||
self.assertEqual(exit_code, 0)
|
||||
execute.assert_called_once_with(["pobsync", "check"])
|
||||
|
||||
def test_maps_schedule_alias_to_django_command(self) -> None:
|
||||
with patch("pobsync.cli.execute_from_command_line") as execute:
|
||||
exit_code = main(["schedule", "web-01", "--cron", "15 2 * * *"])
|
||||
|
||||
self.assertEqual(exit_code, 0)
|
||||
execute.assert_called_once_with(
|
||||
["pobsync", "configure_pobsync_schedule", "web-01", "--cron", "15 2 * * *"]
|
||||
)
|
||||
Reference in New Issue
Block a user