Skip to content

Commit 18cdb7e

Browse files
Add unit test for separate dbt test
1 parent 1152dfe commit 18cdb7e

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

src/dbt_score/models.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -435,20 +435,17 @@ def _reindex_tests(self) -> None:
435435
"""Index tests based on their associated evaluable."""
436436
for node_values in self.raw_nodes.values():
437437
if node_values.get("resource_type") == "test":
438-
# tests for models have a non-null value for `attached_node`
438+
# Tests for models have a non-null value for `attached_node`
439439
if attached_node := node_values.get("attached_node"):
440440
self.tests[attached_node].append(node_values)
441441

442-
# Tests for sources will have a null `attached_node`,
443-
# and a non-empty list for `sources`.
444-
# They need to be attributed to the source id
442+
# Tests for sources or separate tests will have `attached_node` == null.
443+
# They need to be attributed to the node id
445444
# based on the `depends_on` field.
446-
elif node_values.get("sources") and (
447-
source_unique_id := next(
448-
iter(node_values.get("depends_on", {}).get("nodes", [])), None
449-
)
445+
elif node_unique_id := next(
446+
iter(node_values.get("depends_on", {}).get("nodes", [])), None
450447
):
451-
self.tests[source_unique_id].append(node_values)
448+
self.tests[node_unique_id].append(node_values)
452449

453450
def _filter_evaluables(self, select: Iterable[str]) -> None:
454451
"""Filter evaluables like dbt's --select."""

tests/resources/manifest.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,13 @@
125125
"resource_type": "test",
126126
"package_name": "package"
127127
},
128+
"test.package.test4": {
129+
"resource_type": "test",
130+
"depends_on": { "nodes": ["model.package.model1"] },
131+
"name": "test4",
132+
"package_name": "package",
133+
"tags": []
134+
},
128135
"test.package.source_test1": {
129136
"resource_type": "test",
130137
"package_name": "package",

tests/test_models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ def test_manifest_load(mock_read_text, raw_manifest):
2020
]
2121
)
2222
assert loader.models[0].tests[0].name == "test2"
23+
assert loader.models[0].tests[1].name == "test4"
2324
assert loader.models[0].columns[0].tests[0].name == "test1"
2425

2526
assert len(loader.sources) == len(

0 commit comments

Comments
 (0)