Skip to content

Commit d355477

Browse files
authored
Merge pull request #1011 from no23reason/dho/cq-1267-ranking
fix: fix ranking filter conversion
2 parents 834ae12 + c396765 commit d355477

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

gooddata-sdk/gooddata_sdk/compute/compute_to_sdk_converter.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ def convert_filter(filter_dict: dict[str, Any]) -> Filter:
109109
# mypy is unable to automatically convert Union[str, ObjId] to Union[str, ObjId, Attribute, Metric]
110110
# so use explicit cast here
111111
dimensionality = (
112-
[cast(Union[str, ObjId, Attribute, Metric], ref_extract(a)) for a in f["attributes"]]
113-
if "attributes" in f
112+
[cast(Union[str, ObjId, Attribute, Metric], ref_extract(a)) for a in f["dimensionality"]]
113+
if "dimensionality" in f
114114
else None
115115
)
116116

gooddata-sdk/tests/compute/test_compute_to_sdk_converter.py

+27
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,33 @@ def test_ranking_filter_conversion():
202202
assert result.value == 5
203203

204204

205+
def test_ranking_filter_with_dimensionality_conversion():
206+
filter_dict = json.loads(
207+
"""
208+
{
209+
"rankingFilter": {
210+
"measures": [{
211+
"localIdentifier": "measure1.localId"
212+
}],
213+
"dimensionality": [{
214+
"localIdentifier": "attribute1.localId"
215+
}],
216+
"operator": "TOP",
217+
"value": 5
218+
}
219+
}
220+
"""
221+
)
222+
223+
result = ComputeToSdkConverter.convert_filter(filter_dict)
224+
225+
assert isinstance(result, RankingFilter)
226+
assert result.metrics[0] == "measure1.localId"
227+
assert result.dimensionality[0] == "attribute1.localId"
228+
assert result.operator == "TOP"
229+
assert result.value == 5
230+
231+
205232
def test_simple_metric_conversion():
206233
metric_dict = json.loads(
207234
"""

0 commit comments

Comments
 (0)