Skip to content

Commit f945d99

Browse files
committed
feat: add deepdiff to layout tests
risk: nonprod
1 parent ced81f7 commit f945d99

File tree

2 files changed

+26
-24
lines changed

2 files changed

+26
-24
lines changed

gooddata-sdk/test-requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ urllib3==1.26.9
88
python-dotenv~=1.0.0
99
attrs>=21.4.0,<=24.2.0
1010
cattrs>=22.1.0,<=24.1.1
11+
deepdiff~=8.5.0

gooddata-sdk/tests/catalog/test_catalog_workspace_content.py

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from unittest.mock import MagicMock
88

99
import attrs
10+
from deepdiff import DeepDiff
1011
from gooddata_sdk import (
1112
CatalogDatasetWorkspaceDataFilterIdentifier,
1213
CatalogDeclarativeAnalytics,
@@ -91,8 +92,8 @@ def test_store_declarative_ldm(test_config):
9192
sdk.catalog_workspace_content.store_declarative_ldm(workspace_id, path)
9293
ldm_o = sdk.catalog_workspace_content.load_declarative_ldm(workspace_id, path)
9394

94-
assert ldm_e == ldm_o
95-
assert ldm_e.to_api().to_dict() == ldm_o.to_api().to_dict()
95+
assert DeepDiff(ldm_e, ldm_o) == {}
96+
assert DeepDiff(ldm_e.to_api().to_dict(), ldm_o.to_api().to_dict()) == {}
9697

9798

9899
@gd_vcr.use_cassette(str(_fixtures_dir / "demo_load_and_put_declarative_ldm.yaml"))
@@ -109,10 +110,10 @@ def test_load_and_put_declarative_ldm(test_config):
109110

110111
sdk.catalog_workspace_content.load_and_put_declarative_ldm(identifier, path, standalone_copy=True)
111112
ldm_o = sdk.catalog_workspace_content.get_declarative_ldm(identifier)
112-
assert ldm_e != ldm_o
113+
assert DeepDiff(ldm_e, ldm_o) != {}
113114
ldm_e.remove_wdf_refs()
114-
assert ldm_e == ldm_o
115-
assert ldm_e.to_api().to_dict() == ldm_o.to_api().to_dict()
115+
assert DeepDiff(ldm_e, ldm_o) == {}
116+
assert DeepDiff(ldm_e.to_api().to_dict(), ldm_o.to_api().to_dict()) == {}
116117
finally:
117118
_refresh_workspaces(sdk)
118119

@@ -193,8 +194,8 @@ def test_store_declarative_analytics_model(test_config):
193194
sdk.catalog_workspace_content.store_declarative_analytics_model(workspace_id, path)
194195
analytics_model_o = sdk.catalog_workspace_content.load_declarative_analytics_model(workspace_id, path)
195196

196-
assert analytics_model_e == analytics_model_o
197-
assert analytics_model_e.to_api().to_dict() == analytics_model_o.to_api().to_dict()
197+
assert DeepDiff(analytics_model_e, analytics_model_o) == {}
198+
assert DeepDiff(analytics_model_e.to_api().to_dict(), analytics_model_o.to_api().to_dict()) == {}
198199

199200

200201
@gd_vcr.use_cassette(str(_fixtures_dir / "demo_load_and_put_declarative_analytics_model.yaml"))
@@ -214,8 +215,8 @@ def test_load_and_put_declarative_analytics_model(test_config):
214215
analytics_model_o = sdk.catalog_workspace_content.get_declarative_analytics_model(
215216
identifier, exclude=["ACTIVITY_INFO"]
216217
)
217-
assert analytics_model_e == analytics_model_o
218-
assert analytics_model_e.to_api().to_dict() == analytics_model_o.to_api().to_dict()
218+
assert DeepDiff(analytics_model_e, analytics_model_o) == {}
219+
assert DeepDiff(analytics_model_e.to_api().to_dict(), analytics_model_o.to_api().to_dict()) == {}
219220
finally:
220221
_refresh_workspaces(sdk)
221222

@@ -231,8 +232,8 @@ def test_put_declarative_analytics_model(test_config):
231232

232233
sdk.catalog_workspace_content.put_declarative_analytics_model(identifier, analytics_model_e)
233234
analytics_model_o = sdk.catalog_workspace_content.get_declarative_analytics_model(identifier)
234-
assert analytics_model_e == analytics_model_o
235-
assert analytics_model_e.to_api().to_dict() == analytics_model_o.to_api().to_dict()
235+
assert DeepDiff(analytics_model_e, analytics_model_o) == {}
236+
assert DeepDiff(analytics_model_e.to_api().to_dict(), analytics_model_o.to_api().to_dict()) == {}
236237
finally:
237238
_refresh_workspaces(sdk)
238239

@@ -248,10 +249,10 @@ def test_put_declarative_ldm(test_config):
248249
try:
249250
sdk.catalog_workspace_content.put_declarative_ldm(identifier, ldm_e, standalone_copy=True)
250251
ldm_o = sdk.catalog_workspace_content.get_declarative_ldm(identifier)
251-
assert ldm_e != ldm_o
252+
assert DeepDiff(ldm_e, ldm_o) != {}
252253
ldm_e.remove_wdf_refs()
253-
assert ldm_e == ldm_o
254-
assert ldm_e.to_api().to_dict() == ldm_o.to_api().to_dict()
254+
assert DeepDiff(ldm_e, ldm_o) == {}
255+
assert DeepDiff(ldm_e.to_api().to_dict(), ldm_o.to_api().to_dict()) == {}
255256
finally:
256257
_refresh_workspaces(sdk)
257258

@@ -269,8 +270,8 @@ def test_get_declarative_analytics_model(test_config):
269270

270271
expected_o = CatalogDeclarativeAnalytics.from_dict(data)
271272

272-
assert analytics_model_o == expected_o
273-
assert analytics_model_o.to_api().to_dict(camel_case=True) == data
273+
assert DeepDiff(analytics_model_o, expected_o) == {}
274+
assert DeepDiff(analytics_model_o.to_api().to_dict(camel_case=True), data) == {}
274275

275276

276277
@gd_vcr.use_cassette(str(_fixtures_dir / "demo_get_declarative_analytics_model_child.yaml"))
@@ -286,8 +287,8 @@ def test_get_declarative_analytics_model_child(test_config):
286287

287288
expected_o = CatalogDeclarativeAnalytics.from_dict(data)
288289

289-
assert analytics_model_o == expected_o
290-
assert analytics_model_o.to_api().to_dict(camel_case=True) == data
290+
assert DeepDiff(analytics_model_o, expected_o) == {}
291+
assert DeepDiff(analytics_model_o.to_api().to_dict(camel_case=True), data) == {}
291292

292293

293294
@gd_vcr.use_cassette(str(_fixtures_dir / "demo_get_declarative_ldm.yaml"))
@@ -301,8 +302,8 @@ def test_get_declarative_ldm(test_config):
301302

302303
expected_o = CatalogDeclarativeModel.from_dict(data)
303304

304-
assert ldm_o == expected_o
305-
assert ldm_o.to_api().to_dict(camel_case=True) == data
305+
assert DeepDiff(ldm_o, expected_o) == {}
306+
assert DeepDiff(ldm_o.to_api().to_dict(camel_case=True), data) == {}
306307

307308

308309
@gd_vcr.use_cassette(str(_fixtures_dir / "demo_catalog.yaml"))
@@ -367,7 +368,7 @@ def test_ldm_store_load(test_config):
367368

368369
sdk.catalog_workspace_content.store_ldm_to_disk(test_config["workspace"], path)
369370
loaded_ldm = sdk.catalog_workspace_content.load_ldm_from_disk(path)
370-
assert loaded_ldm == ldm
371+
assert DeepDiff(loaded_ldm, ldm) == {}
371372

372373

373374
@gd_vcr.use_cassette(str(_fixtures_dir / "analytics_store_load.yaml"))
@@ -378,7 +379,7 @@ def test_analytics_store_load(test_config):
378379

379380
sdk.catalog_workspace_content.store_analytics_model_to_disk(test_config["workspace"], path)
380381
loaded_analytics_model = sdk.catalog_workspace_content.load_analytics_model_from_disk(path)
381-
assert loaded_analytics_model == analytics_model
382+
assert DeepDiff(loaded_analytics_model, analytics_model) == {}
382383

383384

384385
@gd_vcr.use_cassette(str(_fixtures_dir / "label_elements.yaml"))
@@ -468,7 +469,7 @@ def test_explicit_workspace_data_filter(test_config):
468469

469470
updated_ldm = sdk.catalog_workspace_content.get_declarative_ldm(workspace_id=test_config["workspace"])
470471

471-
assert model_cpy == updated_ldm
472+
assert DeepDiff(model_cpy, updated_ldm) == {}
472473

473474
dataset = sdk.catalog_workspace_content.get_full_catalog(workspace_id=test_config["workspace"]).get_dataset(
474475
dataset_id
@@ -496,6 +497,6 @@ def test_export_definition_analytics_layout(test_config):
496497
analytics_e = sdk.catalog_workspace_content.get_declarative_analytics_model(
497498
test_config["workspace"], exclude=["ACTIVITY_INFO"]
498499
)
499-
assert analytics_o.analytics.export_definitions == analytics_e.analytics.export_definitions
500+
assert DeepDiff(analytics_o.analytics.export_definitions, analytics_e.analytics.export_definitions) == {}
500501
finally:
501502
_refresh_workspaces(sdk)

0 commit comments

Comments
 (0)