Skip to content

Commit a352233

Browse files
committed
test importing without introducing imported section
1 parent 9935c21 commit a352233

File tree

11 files changed

+48
-62
lines changed

11 files changed

+48
-62
lines changed

src/dbt_score/rule_registry.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def _load(self, namespace_name: str) -> None:
6262
module = importlib.import_module(module_name)
6363
for obj_name in dir(module):
6464
obj = module.__dict__[obj_name]
65-
# skip adding objects imported from other modules
65+
# Skip adding objects imported from other modules
6666
if type(obj) is type and module.__name__ != obj.__module__:
6767
continue
6868
if type(obj) is type and issubclass(obj, Rule) and obj is not Rule:

tests/resources/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ severity=4
2323
[tool.dbt-score.rules."tests.conftest.rule_with_config"]
2424
model_name="model2"
2525

26-
[tool.dbt-score.rules."tests.rules.example.rule_test_example"]
26+
[tool.dbt-score.rules."tests.rules.rules.rule_test_example"]
2727
severity=4
28-
rule_filter_names=["tests.rules.example.skip_model1"]
28+
rule_filter_names=["tests.rules.rule_filters.skip_model1"]

tests/rules/example.py

Lines changed: 0 additions & 14 deletions
This file was deleted.

tests/rules/imported/__init__.py

Lines changed: 0 additions & 1 deletion
This file was deleted.

tests/rules/imported/imported.py

Lines changed: 0 additions & 6 deletions
This file was deleted.

tests/rules/imported/original.py

Lines changed: 0 additions & 14 deletions
This file was deleted.

tests/rules/rule_filters.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
"""Example rule filters."""
2+
3+
from dbt_score import Model, rule_filter
4+
5+
6+
@rule_filter
7+
def skip_model1(model: Model) -> bool:
8+
"""An example filter."""
9+
return model.name != "model1"
10+
11+
12+
@rule_filter
13+
def skip_schemaX(model: Model) -> bool:
14+
"""An example filter."""
15+
return model.schema != "X"

tests/rules/rules.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
"""Example rules."""
2+
3+
from dbt_score import Model, RuleViolation, rule
4+
5+
from tests.rules.rule_filters import skip_schemaX
6+
7+
8+
@rule(rule_filters={skip_schemaX()})
9+
def rule_test_example(model: Model) -> RuleViolation | None:
10+
"""An example rule."""

tests/test_config.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def test_load_valid_toml_file(valid_config_path):
1515
assert config.disabled_rules == ["foo.foo", "tests.bar"]
1616
assert config.rules_config["foo.bar"].severity == Severity.CRITICAL
1717
assert (
18-
config.rules_config["tests.rules.example.rule_test_example"].severity
18+
config.rules_config["tests.rules.rules.rule_test_example"].severity
1919
== Severity.CRITICAL
2020
)
2121
assert config.badge_config.third.threshold == 6.5
@@ -28,8 +28,8 @@ def test_load_valid_toml_file(valid_config_path):
2828
assert config.fail_project_under == 7.5
2929
assert config.fail_any_item_under == 6.9
3030
assert config.rules_config[
31-
"tests.rules.example.rule_test_example"
32-
].rule_filter_names == ["tests.rules.example.skip_model1"]
31+
"tests.rules.rules.rule_test_example"
32+
].rule_filter_names == ["tests.rules.rule_filters.skip_model1"]
3333

3434

3535
def test_load_invalid_toml_file(caplog, invalid_config_path):

tests/test_rule_catalog.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ def test_rule_catalog_terminal(capsys, default_config):
1313
stdout = capsys.readouterr().out
1414
assert (
1515
stdout
16-
== """\x1B[1mtests.rules.example.rule_test_example\x1B[0m:
16+
== """\x1B[1mtests.rules.nested.example.rule_test_nested_example\x1B[0m:
1717
An example rule.
1818
19-
\x1B[1mtests.rules.nested.example.rule_test_nested_example\x1B[0m:
19+
\x1B[1mtests.rules.rules.rule_test_example\x1B[0m:
2020
An example rule.
2121
2222
"""
@@ -35,41 +35,41 @@ def test_rule_catalog_markdown(capsys, default_config):
3535
stdout
3636
== """# Doc for tests.rules
3737
38-
## `rule_test_example`
38+
## `rule_test_nested_example`
3939
4040
An example rule.
4141
4242
??? quote "Source code"
4343
```python
44-
@rule()
45-
def rule_test_example(model: Model) -> RuleViolation | None:
44+
@rule
45+
def rule_test_nested_example(model: Model) -> RuleViolation | None:
4646
\"""An example rule.\"""
4747
4848
```
4949
5050
### Default configuration
5151
5252
```toml title="pyproject.toml"
53-
[tool.dbt-score.rules."tests.rules.example.rule_test_example"]
53+
[tool.dbt-score.rules."tests.rules.nested.example.rule_test_nested_example"]
5454
severity = 2
5555
```
5656
57-
## `rule_test_nested_example`
57+
## `rule_test_example`
5858
5959
An example rule.
6060
6161
??? quote "Source code"
6262
```python
63-
@rule
64-
def rule_test_nested_example(model: Model) -> RuleViolation | None:
63+
@rule(rule_filters={skip_schemaX()})
64+
def rule_test_example(model: Model) -> RuleViolation | None:
6565
\"""An example rule.\"""
6666
6767
```
6868
6969
### Default configuration
7070
7171
```toml title="pyproject.toml"
72-
[tool.dbt-score.rules."tests.rules.nested.example.rule_test_nested_example"]
72+
[tool.dbt-score.rules."tests.rules.rules.rule_test_example"]
7373
severity = 2
7474
```
7575

0 commit comments

Comments
 (0)