Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add groups to config tests
  • Loading branch information
emmyoop committed Aug 31, 2023
commit 014387e2bdc8d4d137ea9f20f8c1c9e29bbe6e20
13 changes: 13 additions & 0 deletions tests/functional/semantic_models/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,15 @@
select 3 as id, 'Callum' as first_name, 'McCann' as last_name, 'emerald' as favorite_color, true as loves_dbt, 0 as tenure, current_timestamp as created_at
"""

groups_yml = """
version: 2

groups:
- name: some_group
owner:
email: [email protected]
"""

models_people_metrics_yml = """
version: 2

Expand All @@ -31,6 +40,7 @@
- name: number_of_people
config:
enabled: false
group: some_group
label: "Number of people"
description: Total count of people
type: simple
Expand All @@ -45,6 +55,8 @@

semantic_models:
- name: semantic_people
config:
group: some_group
model: ref('people')
dimensions:
- name: favorite_color
Expand Down Expand Up @@ -75,6 +87,7 @@
model: ref('people')
config:
enabled: true
group: some_group
dimensions:
- name: favorite_color
type: categorical
Expand Down
20 changes: 20 additions & 0 deletions tests/functional/semantic_models/test_semantic_model_configs.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
models_people_metrics_yml,
disabled_semantic_model_people_yml,
enabled_semantic_model_people_yml,
groups_yml,
)


Expand All @@ -24,6 +25,7 @@ def models(self):
"metricflow_time_spine.sql": metricflow_time_spine_sql,
"semantic_models.yml": disabled_semantic_model_people_yml,
"people_metrics.yml": disabled_models_people_metrics_yml,
"groups.yml": groups_yml,
}

def test_yaml_level(self, project):
Expand All @@ -32,6 +34,9 @@ def test_yaml_level(self, project):
assert "semantic_model.test.semantic_people" not in manifest.semantic_models
assert "semantic_model.test.semantic_people" in manifest.disabled

assert "group.test.some_group" in manifest.groups
assert "semantic_model.test.semantic_people" not in manifest.groups


# Test disabled config at semantic_models level with a still enabled metric
class TestDisabledConfigYamlLevelEnabledMetric:
Expand All @@ -42,6 +47,7 @@ def models(self):
"metricflow_time_spine.sql": metricflow_time_spine_sql,
"semantic_models.yml": disabled_semantic_model_people_yml,
"people_metrics.yml": models_people_metrics_yml,
"groups.yml": groups_yml,
}

def test_yaml_level(self, project):
Expand All @@ -61,6 +67,7 @@ def models(self):
"metricflow_time_spine.sql": metricflow_time_spine_sql,
"semantic_models.yml": semantic_model_people_yml,
"people_metrics.yml": models_people_metrics_yml,
"groups.yml": groups_yml,
}

@pytest.fixture(scope="class")
Expand All @@ -77,6 +84,10 @@ def test_project_level(self, project):
run_dbt(["parse"])
manifest = get_manifest(project.project_root)
assert "semantic_model.test.semantic_people" in manifest.semantic_models
assert "group.test.some_group" in manifest.groups
assert (
manifest.semantic_models["semantic_model.test.semantic_people"].group == "some_group"
)

new_enabled_config = {
"semantic-models": {
Expand All @@ -102,6 +113,7 @@ def models(self):
"metricflow_time_spine.sql": metricflow_time_spine_sql,
"semantic_models.yml": semantic_model_people_yml,
"people_metrics.yml": models_people_metrics_yml,
"groups.yml": groups_yml,
}

@pytest.fixture(scope="class")
Expand All @@ -123,6 +135,10 @@ def test_project_level(self, project):
run_dbt(["parse"])
manifest = get_manifest(project.project_root)
assert "semantic_model.test.semantic_people" in manifest.semantic_models
assert "group.test.some_group" in manifest.groups
assert (
manifest.semantic_models["semantic_model.test.semantic_people"].group == "some_group"
)

new_enabled_config = {
"semantic-models": {
Expand All @@ -143,6 +159,9 @@ def test_project_level(self, project):
assert "semantic_model.test.semantic_people" not in manifest.semantic_models
assert "semantic_model.test.semantic_people" in manifest.disabled

assert "group.test.some_group" in manifest.groups
assert "semantic_model.test.semantic_people" not in manifest.groups


# Test inheritence - set configs at project and semantic_model level - expect semantic_model level to win
class TestConfigsInheritence:
Expand All @@ -153,6 +172,7 @@ def models(self):
"metricflow_time_spine.sql": metricflow_time_spine_sql,
"semantic_models.yml": enabled_semantic_model_people_yml,
"people_metrics.yml": models_people_metrics_yml,
"groups.yml": groups_yml,
}

@pytest.fixture(scope="class")
Expand Down