Skip to content

Commit

Permalink
Break tests into multiple classes
Browse files Browse the repository at this point in the history
  • Loading branch information
aranke committed Nov 28, 2023
1 parent fee0709 commit 201d75b
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion tests/functional/docs/test_generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"""


class TestGenerate:
class TestBaseGenerate:
@pytest.fixture(scope="class")
def models(self):
return {
Expand All @@ -41,6 +41,8 @@ def seeds(self):
"second_seed.csv": sample_seed,
}


class TestGenerateManifestNotCompiled(TestBaseGenerate):
def test_manifest_not_compiled(self, project):
run_dbt(["docs", "generate", "--no-compile"])
# manifest.json is written out in parsing now, but it
Expand All @@ -50,23 +52,31 @@ def test_manifest_not_compiled(self, project):
assert model_id in manifest.nodes
assert manifest.nodes[model_id].compiled is False


class TestGenerateEmptyCatalog(TestBaseGenerate):
def test_generate_empty_catalog(self, project):
catalog = run_dbt(["docs", "generate", "--empty-catalog"])
assert catalog.nodes == {}, "nodes should be empty"
assert catalog.sources == {}, "sources should be empty"
assert catalog.errors is None, "errors should be null"


class TestGenerateSelectLimitsCatalog(TestBaseGenerate):
def test_select_limits_catalog(self, project):
run_dbt(["run"])
catalog = run_dbt(["docs", "generate", "--select", "my_model"])
assert len(catalog.nodes) == 1
assert "model.test.my_model" in catalog.nodes


class TestGenerateSelectLimitsNoMatch(TestBaseGenerate):
def test_select_limits_no_match(self, project):
run_dbt(["run"])
catalog = run_dbt(["docs", "generate", "--select", "my_missing_model"])
assert len(catalog.nodes) == 0


class TestGenerateCatalogWithSources(TestBaseGenerate):
def test_catalog_with_sources(self, project):
run_dbt(["build"])
catalog = run_dbt(["docs", "generate"])
Expand All @@ -76,6 +86,8 @@ def test_catalog_with_sources(self, project):
# 2 sources (only ones that exist)
assert len(catalog.sources) == 2


class TestGenerateSelectSource(TestBaseGenerate):
def test_select_source(self, project):
run_dbt(["build"])
catalog = run_dbt(["docs", "generate", "--select", "source:test.my_seed.sample_seed"])
Expand Down

0 comments on commit 201d75b

Please sign in to comment.