tests ready
This commit is contained in:
@@ -1,49 +0,0 @@
|
||||
# [DEF:backend.tests.test_resource_service:Module]
|
||||
# @TIER: STANDARD
|
||||
# @PURPOSE: Contract-driven tests for ResourceService
|
||||
# @RELATION: TESTS -> backend.src.services.resource_service
|
||||
|
||||
import pytest
|
||||
from unittest.mock import MagicMock, patch
|
||||
from src.services.resource_service import ResourceService
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_dashboards_with_status():
|
||||
# [DEF:test_get_dashboards_with_status:Function]
|
||||
# @TEST: ResourceService correctly enhances dashboard data
|
||||
# @PRE: SupersetClient returns raw dashboards
|
||||
# @POST: Returned dicts contain git_status and last_task
|
||||
|
||||
with patch("src.services.resource_service.SupersetClient") as mock_client, \
|
||||
patch("src.services.resource_service.GitService") as mock_git:
|
||||
|
||||
service = ResourceService()
|
||||
|
||||
# Mock Superset response
|
||||
mock_client.return_value.get_dashboards_summary.return_value = [
|
||||
{"id": 1, "title": "Test Dashboard", "slug": "test"}
|
||||
]
|
||||
|
||||
# Mock Git status
|
||||
mock_git.return_value.get_repo.return_value = None # No repo
|
||||
|
||||
# Mock tasks
|
||||
mock_task = MagicMock()
|
||||
mock_task.id = "task-123"
|
||||
mock_task.status = "RUNNING"
|
||||
mock_task.params = {"resource_id": "dashboard-1"}
|
||||
|
||||
env = MagicMock()
|
||||
env.id = "prod"
|
||||
|
||||
result = await service.get_dashboards_with_status(env, [mock_task])
|
||||
|
||||
assert len(result) == 1
|
||||
assert result[0]["id"] == 1
|
||||
assert "git_status" in result[0]
|
||||
assert result[0]["last_task"]["task_id"] == "task-123"
|
||||
assert result[0]["last_task"]["status"] == "RUNNING"
|
||||
|
||||
# [/DEF:test_get_dashboards_with_status:Function]
|
||||
|
||||
# [/DEF:backend.tests.test_resource_service:Module]
|
||||
Reference in New Issue
Block a user