Files
the-other-dude/backend/tests/test_config_checkpoint.py
Jason Staack b840047e19 feat: The Other Dude v9.0.1 — full-featured email system
ci: add GitHub Pages deployment workflow for docs site

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 19:30:44 -05:00

83 lines
2.6 KiB
Python

"""Tests for config checkpoint endpoint."""
import uuid
from unittest.mock import AsyncMock, patch, MagicMock
import pytest
class TestCheckpointEndpointExists:
"""Verify the checkpoint route is registered on the config_backups router."""
def test_router_has_checkpoint_route(self):
from app.routers.config_backups import router
paths = [r.path for r in router.routes]
assert any("checkpoint" in p for p in paths), (
f"No checkpoint route found. Routes: {paths}"
)
def test_checkpoint_route_is_post(self):
from app.routers.config_backups import router
for route in router.routes:
if hasattr(route, "path") and "checkpoint" in route.path:
assert "POST" in route.methods, (
f"Checkpoint route should be POST, got {route.methods}"
)
break
else:
pytest.fail("No checkpoint route found")
class TestCheckpointFunction:
"""Test the create_checkpoint handler logic."""
@pytest.mark.asyncio
async def test_checkpoint_calls_backup_service_with_checkpoint_trigger(self):
"""create_checkpoint should call backup_service.run_backup with trigger_type='checkpoint'."""
from app.routers.config_backups import create_checkpoint
mock_result = {
"commit_sha": "abc1234",
"trigger_type": "checkpoint",
"lines_added": 100,
"lines_removed": 0,
}
mock_db = AsyncMock()
mock_user = MagicMock()
tenant_id = uuid.uuid4()
device_id = uuid.uuid4()
mock_request = MagicMock()
with patch(
"app.routers.config_backups.backup_service.run_backup",
new_callable=AsyncMock,
return_value=mock_result,
) as mock_backup, patch(
"app.routers.config_backups._check_tenant_access",
new_callable=AsyncMock,
), patch(
"app.routers.config_backups.limiter.enabled",
False,
):
result = await create_checkpoint(
request=mock_request,
tenant_id=tenant_id,
device_id=device_id,
db=mock_db,
current_user=mock_user,
)
assert result["trigger_type"] == "checkpoint"
assert result["commit_sha"] == "abc1234"
mock_backup.assert_called_once_with(
device_id=str(device_id),
tenant_id=str(tenant_id),
trigger_type="checkpoint",
db_session=mock_db,
)