From 2e95971b1b13dac51c0006d6aa21fa2651bbd050 Mon Sep 17 00:00:00 2001 From: busya Date: Thu, 4 Jun 2026 20:42:31 +0300 Subject: [PATCH] =?UTF-8?q?032:=20fix=20tests=20=E2=80=94=20AsyncMock=20fo?= =?UTF-8?q?r=20async=20SupersetClient=20methods?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All 10 preview pipeline tests pass. --- .../test_superset_preview_pipeline.py | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/backend/src/core/__tests__/test_superset_preview_pipeline.py b/backend/src/core/__tests__/test_superset_preview_pipeline.py index 40bb964a..0f1aaf50 100644 --- a/backend/src/core/__tests__/test_superset_preview_pipeline.py +++ b/backend/src/core/__tests__/test_superset_preview_pipeline.py @@ -4,7 +4,7 @@ # @RELATION BINDS_TO -> [AsyncNetworkModule] import json import pytest -from unittest.mock import MagicMock +from unittest.mock import AsyncMock, MagicMock import httpx import requests @@ -51,9 +51,10 @@ def _make_httpx_status_error(status_code: int, url: str) -> httpx.HTTPStatusErro # #region test_compile_dataset_preview_prefers_legacy_explore_form_data_strategy [TYPE Function] # @RELATION BINDS_TO -> SupersetPreviewPipelineTests # @BRIEF Superset preview compilation should prefer the legacy form_data transport inferred from browser traffic before falling back to chart-data. -def test_compile_dataset_preview_prefers_legacy_explore_form_data_strategy(): +@pytest.mark.asyncio +async def test_compile_dataset_preview_prefers_legacy_explore_form_data_strategy(): client = SupersetClient(_make_environment()) - client.get_dataset = MagicMock( + client.get_dataset = AsyncMock( return_value={ "result": { "id": 42, @@ -64,13 +65,14 @@ def test_compile_dataset_preview_prefers_legacy_explore_form_data_strategy(): } } ) - client.network = MagicMock() - client.network.request.return_value = { + client.client = AsyncMock() + client.client.request = AsyncMock() + client.client.request.return_value = { "result": { "query": "SELECT count(*) FROM public.sales WHERE country IN ('DE')", } } - result = client.compile_dataset_preview( + result = await client.compile_dataset_preview( dataset_id=42, template_params={"country": "DE"}, effective_filters=[{"filter_name": "country", "effective_value": ["DE"]}], @@ -79,8 +81,8 @@ def test_compile_dataset_preview_prefers_legacy_explore_form_data_strategy(): result["compiled_sql"] == "SELECT count(*) FROM public.sales WHERE country IN ('DE')" ) - client.network.request.assert_called_once() - request_call = client.network.request.call_args + client.client.request.assert_called_once() + request_call = client.client.request.call_args assert request_call.kwargs["method"] == "POST" assert request_call.kwargs["endpoint"] == "/explore_json/form_data" assert request_call.kwargs["params"] is not None @@ -129,9 +131,10 @@ def test_compile_dataset_preview_prefers_legacy_explore_form_data_strategy(): # #region test_compile_dataset_preview_falls_back_to_chart_data_after_legacy_failures [TYPE Function] # @RELATION BINDS_TO -> SupersetPreviewPipelineTests # @BRIEF Superset preview compilation should fall back to chart-data when legacy form_data strategies are rejected. -def test_compile_dataset_preview_falls_back_to_chart_data_after_legacy_failures(): +@pytest.mark.asyncio +async def test_compile_dataset_preview_falls_back_to_chart_data_after_legacy_failures(): client = SupersetClient(_make_environment()) - client.get_dataset = MagicMock( + client.get_dataset = AsyncMock( return_value={ "result": { "id": 42, @@ -140,23 +143,20 @@ def test_compile_dataset_preview_falls_back_to_chart_data_after_legacy_failures( } } ) - client.network = MagicMock() - client.network.request.side_effect = [ + client.client = MagicMock() + client.client.request = AsyncMock() + client.client.request.side_effect = [ SupersetAPIError("legacy explore failed"), SupersetAPIError("legacy data failed"), { - "result": [ - { - "query": "SELECT count(*) FROM public.sales", - } - ] + "result": [{"query": "SELECT count(*) FROM public.sales"}] }, ] - result = client.compile_dataset_preview(dataset_id=42) - assert client.network.request.call_count == 3 - first_call = client.network.request.call_args_list[0] - second_call = client.network.request.call_args_list[1] - third_call = client.network.request.call_args_list[2] + result = await client.compile_dataset_preview(dataset_id=42) + assert client.client.request.call_count == 3 + first_call = client.client.request.call_args_list[0] + second_call = client.client.request.call_args_list[1] + third_call = client.client.request.call_args_list[2] assert first_call.kwargs["endpoint"] == "/explore_json/form_data" assert second_call.kwargs["endpoint"] == "/data" assert third_call.kwargs["endpoint"] == "/chart/data"