Skip to content

Commit 62b03eb

Browse files
committed
feat: add deepdiff to layout tests
risk: nonprod
1 parent 08dab6f commit 62b03eb

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,
@@ -90,8 +91,8 @@ def test_store_declarative_ldm(test_config):
9091
sdk.catalog_workspace_content.store_declarative_ldm(workspace_id, path)
9192
ldm_o = sdk.catalog_workspace_content.load_declarative_ldm(workspace_id, path)
9293

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

9697

9798
@gd_vcr.use_cassette(str(_fixtures_dir / "demo_load_and_put_declarative_ldm.yaml"))
@@ -108,10 +109,10 @@ def test_load_and_put_declarative_ldm(test_config):
108109

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

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

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

198199

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

@@ -230,8 +231,8 @@ def test_put_declarative_analytics_model(test_config):
230231

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

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

@@ -268,8 +269,8 @@ def test_get_declarative_analytics_model(test_config):
268269

269270
expected_o = CatalogDeclarativeAnalytics.from_dict(data)
270271

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

274275

275276
@gd_vcr.use_cassette(str(_fixtures_dir / "demo_get_declarative_analytics_model_child.yaml"))
@@ -285,8 +286,8 @@ def test_get_declarative_analytics_model_child(test_config):
285286

286287
expected_o = CatalogDeclarativeAnalytics.from_dict(data)
287288

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

291292

292293
@gd_vcr.use_cassette(str(_fixtures_dir / "demo_get_declarative_ldm.yaml"))
@@ -300,8 +301,8 @@ def test_get_declarative_ldm(test_config):
300301

301302
expected_o = CatalogDeclarativeModel.from_dict(data)
302303

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

306307

307308
@gd_vcr.use_cassette(str(_fixtures_dir / "demo_catalog.yaml"))
@@ -366,7 +367,7 @@ def test_ldm_store_load(test_config):
366367

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

371372

372373
@gd_vcr.use_cassette(str(_fixtures_dir / "analytics_store_load.yaml"))
@@ -377,7 +378,7 @@ def test_analytics_store_load(test_config):
377378

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

382383

383384
@gd_vcr.use_cassette(str(_fixtures_dir / "label_elements.yaml"))
@@ -467,7 +468,7 @@ def test_explicit_workspace_data_filter(test_config):
467468

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

470-
assert model_cpy == updated_ldm
471+
assert DeepDiff(model_cpy, updated_ldm) == {}
471472

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

0 commit comments

Comments
 (0)