Skip to content

Commit

Permalink
fix(dbt): Dataset creation returns a different schema (#275)
Browse files Browse the repository at this point in the history
  • Loading branch information
Vitor-Avila committed Mar 25, 2024
1 parent 33c1a95 commit 6bb346b
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/preset_cli/cli/superset/sync/dbt/datasets.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ def get_or_create_dataset(
_logger.info("Creating dataset %s", model["unique_id"])
try:
dataset = create_dataset(client, database, model)
return dataset
return client.get_dataset(dataset["id"])
except Exception as excinfo:
_logger.exception("Unable to create dataset")
raise CLIError("Unable to create dataset", 1) from excinfo
Expand Down
11 changes: 8 additions & 3 deletions tests/cli/superset/sync/dbt/datasets_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,11 @@ def test_sync_datasets_new(mocker: MockerFixture) -> None:
"""
client = mocker.MagicMock()
client.get_datasets.return_value = []
client.create_dataset.return_value = {"id": 1, "metrics": [], "columns": []}
client.create_dataset.return_value = {
"id": 1,
"data": {"metrics": [], "columns": []},
}
client.get_dataset.return_value = {"id": 1, "metrics": [], "columns": []}
compute_dataset_metadata_mock = mocker.patch(
"preset_cli.cli.superset.sync.dbt.datasets.compute_dataset_metadata",
)
Expand All @@ -146,6 +150,7 @@ def test_sync_datasets_new(mocker: MockerFixture) -> None:
schema="public",
table_name="messages_channels",
)
client.get_dataset.assert_called_with(client.create_dataset()["id"])
client.update_dataset.assert_has_calls(
[
mock.call(
Expand Down Expand Up @@ -797,7 +802,7 @@ def test_get_or_create_dataset_existing_dataset(mocker: MockerFixture) -> None:
client.get_dataset.return_value = {"id": 1}
database = {"id": 1}
result = get_or_create_dataset(client, models[0], database)
assert result == client.get_dataset.return_value
assert result == client.get_dataset()
client.create_dataset.assert_not_called()


Expand Down Expand Up @@ -829,7 +834,7 @@ def test_get_or_create_dataset_no_datasets(mocker: MockerFixture) -> None:
)
database = {"id": 1}
result = get_or_create_dataset(client, models[0], database)
assert result == create_dataset_mock.return_value
assert result == client.get_dataset()
create_dataset_mock.assert_called_with(client, database, models[0])


Expand Down

0 comments on commit 6bb346b

Please sign in to comment.