Skip to content

Commit 753ac69

Browse files
committed
test: add aggregated dataset to testing ldm
risk: nonprod
1 parent 1c8cffe commit 753ac69

File tree

9 files changed

+756
-412
lines changed

9 files changed

+756
-412
lines changed

gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class CatalogDeclarativeDataset(Base):
4242
attributes: Optional[list[CatalogDeclarativeAttribute]] = None
4343
facts: Optional[list[CatalogDeclarativeFact]] = None
4444
aggregated_facts: Optional[list[CatalogDeclarativeAggregatedFact]] = None
45+
precedence: Optional[int] = None
4546
data_source_table_id: Optional[CatalogDataSourceTableIdentifier] = None
4647
sql: Optional[CatalogDeclarativeDatasetSql] = None
4748
tags: Optional[list[str]] = None

gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/content_objects/dataset.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,14 @@ def generate_facts_from_api(self) -> list[CatalogFact]:
145145
default=attr.Factory(lambda self: self.generate_facts_from_api(), takes_self=True),
146146
)
147147

148+
# TODO: Doublecheck if we shouldn't do something like for facts
149+
aggregated_facts: Optional[list[CatalogAggregatedFact]] = attr.field(
150+
default=attr.Factory(lambda self: self.json_api_attributes.get("aggregatedFacts"), takes_self=True),
151+
)
152+
precedence: Optional[int] = attr.field(
153+
default=attr.Factory(lambda self: self.json_api_attributes.get("precedence"), takes_self=True)
154+
)
155+
148156
grain: Optional[list] = attr.field(
149157
default=attr.Factory(lambda self: self.json_api_attributes.get("grain"), takes_self=True)
150158
)

gooddata-sdk/gooddata_sdk/catalog/workspace/model_container.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from gooddata_sdk.catalog.types import ValidObjects
88
from gooddata_sdk.catalog.workspace.entity_model.content_objects.dataset import (
9+
CatalogAggregatedFact,
910
CatalogAttribute,
1011
CatalogDataset,
1112
CatalogFact,
@@ -46,6 +47,10 @@ def datasets(self) -> list[CatalogDataset]:
4647
def facts(self) -> list[CatalogFact]:
4748
return [f for d in self._datasets for f in d.facts]
4849

50+
@property
51+
def aggregated_facts(self) -> list[CatalogAggregatedFact]:
52+
return [f for d in self._datasets for f in d.aggregated_facts]
53+
4954
@property
5055
def attributes(self) -> list[CatalogAttribute]:
5156
return [a for d in self._datasets for a in d.attributes]

gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_aggregated_facts.yaml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ interactions:
2222
Cache-Control:
2323
- no-cache, no-store, max-age=0, must-revalidate
2424
Content-Length:
25-
- '211'
25+
- '594'
2626
Content-Type:
2727
- application/vnd.gooddata.api+json
2828
DATE: &id001
@@ -50,7 +50,23 @@ interactions:
5050
- 1; mode=block
5151
body:
5252
string:
53-
data: []
53+
data:
54+
- id: budget_agg
55+
type: aggregatedFact
56+
attributes:
57+
description: Budget Agg
58+
tags:
59+
- Campaign channels per category
60+
sourceColumn: budget
61+
sourceColumnDataType: INT
62+
areRelationsValid: true
63+
operation: SUM
64+
links:
65+
self: http://localhost:3000/api/v1/entities/workspaces/demo/aggregatedFacts/budget_agg
66+
meta:
67+
origin:
68+
originType: NATIVE
69+
originId: demo
5470
links:
5571
self: http://localhost:3000/api/v1/entities/workspaces/demo/aggregatedFacts?page=0&size=500
5672
next: http://localhost:3000/api/v1/entities/workspaces/demo/aggregatedFacts?page=1&size=500

0 commit comments

Comments
 (0)