fix: 5 agents — core 703/703, settings 38/38, git edges 191/191, API routes 1139/1140, plugins +70 coverage

This commit is contained in:
2026-06-15 18:02:09 +03:00
parent 9cf2d6400a
commit 3de67c258a
18 changed files with 1432 additions and 154 deletions

View File

@@ -0,0 +1,94 @@
# #region Test.PreviewResponseParser [C:3] [TYPE Module] [SEMANTICS test, translate, response, parser, data, extract]
# @BRIEF Tests for preview_response_parser.py — extract_data_rows.
# @RELATION BINDS_TO -> [preview_response_parser]
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent.parent.parent / "src"))
import pytest
from src.plugins.translate.preview_response_parser import extract_data_rows
class TestExtractDataRows:
"""extract_data_rows — extract data rows from Superset chart data API response."""
def test_result_list_with_data(self):
"""result is a list with item containing data key."""
response = {
"result": [
{"data": [{"col1": "val1"}, {"col1": "val2"}]}
]
}
result = extract_data_rows(response)
assert len(result) == 2
assert result[0]["col1"] == "val1"
def test_result_dict_with_data(self):
"""result is a dict with data key."""
response = {
"result": {"data": [{"col1": "val1"}]}
}
result = extract_data_rows(response)
assert len(result) == 1
def test_fallback_to_response_data(self):
"""Fallback to response.data when result has no data."""
response = {
"data": [{"col1": "val1"}]
}
result = extract_data_rows(response)
assert len(result) == 1
def test_result_list_returned_directly(self):
"""When result is a list with no data key, return it."""
response = {
"result": [{"col1": "val1"}, {"col1": "val2"}]
}
result = extract_data_rows(response)
assert len(result) == 2
def test_empty_result_list(self):
"""Empty result list returns empty list."""
response = {"result": []}
result = extract_data_rows(response)
assert result == []
def test_empty_data_list(self):
"""Empty data list falls back to returning result list."""
response = {
"result": [{"data": []}]
}
result = extract_data_rows(response)
# Returns the result list as fallback
assert result == [{"data": []}]
def test_no_result_or_data_key(self):
"""No result or data key returns empty list."""
response = {"other": "value"}
result = extract_data_rows(response)
assert result == []
def test_result_not_list_or_dict(self):
"""Result is neither list nor dict."""
response = {"result": "string_value"}
result = extract_data_rows(response)
assert result == []
def test_result_list_item_no_data(self):
"""Result list item has no data key, falls back to result list."""
response = {
"result": [{"other": "value"}]
}
result = extract_data_rows(response)
# Returns the result list as fallback
assert result == [{"other": "value"}]
def test_result_dict_data_empty_list(self):
"""Result dict data is empty list."""
response = {
"result": {"data": []}
}
result = extract_data_rows(response)
assert result == []