Skip to content

Commit

Permalink
Code quality fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
iknox-fa committed Jan 27, 2023
1 parent 413114e commit 6a81545
Show file tree
Hide file tree
Showing 7 changed files with 86 additions and 128 deletions.
7 changes: 0 additions & 7 deletions core/dbt/events/base_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,13 +125,6 @@ class DynamicLevel(BaseEvent):
pass


# DynamicLevel requires that the level be supplied on the
# event construction call using the "info" function from functions.py
@dataclass # type: ignore[misc]
class DynamicLevel(BaseEvent):
pass


@dataclass
class TestLevel(BaseEvent):
__test__ = False
Expand Down
24 changes: 5 additions & 19 deletions tests/adapter/dbt/tests/adapter/aliases/test_aliases.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,7 @@ def models(self):

@pytest.fixture(scope="class")
def macros(self):
return {
"cast.sql": MACROS__CAST_SQL,
"expect_value.sql": MACROS__EXPECT_VALUE_SQL
}
return {"cast.sql": MACROS__CAST_SQL, "expect_value.sql": MACROS__EXPECT_VALUE_SQL}

def test_alias_model_name(self, project):
results = run_dbt(["run"])
Expand All @@ -71,10 +68,7 @@ def project_config_update(self):

@pytest.fixture(scope="class")
def macros(self):
return {
"cast.sql": MACROS__CAST_SQL,
"expect_value.sql": MACROS__EXPECT_VALUE_SQL
}
return {"cast.sql": MACROS__CAST_SQL, "expect_value.sql": MACROS__EXPECT_VALUE_SQL}

@pytest.fixture(scope="class")
def models(self):
Expand All @@ -100,10 +94,7 @@ def project_config_update(self):

@pytest.fixture(scope="class")
def macros(self):
return {
"cast.sql": MACROS__CAST_SQL,
"expect_value.sql": MACROS__EXPECT_VALUE_SQL
}
return {"cast.sql": MACROS__CAST_SQL, "expect_value.sql": MACROS__EXPECT_VALUE_SQL}

@pytest.fixture(scope="class")
def models(self):
Expand All @@ -130,19 +121,14 @@ def project_config_update(self, unique_schema):
"models": {
"test": {
"alias": "duped_alias",
"model_b": {
"schema": unique_schema + "_alt"
},
"model_b": {"schema": unique_schema + "_alt"},
},
},
}

@pytest.fixture(scope="class")
def macros(self):
return {
"cast.sql": MACROS__CAST_SQL,
"expect_value.sql": MACROS__EXPECT_VALUE_SQL
}
return {"cast.sql": MACROS__CAST_SQL, "expect_value.sql": MACROS__EXPECT_VALUE_SQL}

@pytest.fixture(scope="class")
def models(self):
Expand Down
1 change: 0 additions & 1 deletion tests/functional/incremental_schema_tests/fixtures.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

#
# Properties
#
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,48 +41,36 @@ def models(self):
return {
"incremental_sync_remove_only.sql": _MODELS__INCREMENTAL_SYNC_REMOVE_ONLY,
"incremental_ignore.sql": _MODELS__INCREMENTAL_IGNORE,
"incremental_sync_remove_only_target.sql":
_MODELS__INCREMENTAL_SYNC_REMOVE_ONLY_TARGET,
"incremental_sync_remove_only_target.sql": _MODELS__INCREMENTAL_SYNC_REMOVE_ONLY_TARGET,
"incremental_ignore_target.sql": _MODELS__INCREMENTAL_IGNORE_TARGET,
"incremental_fail.sql": _MODELS__INCREMENTAL_FAIL,
"incremental_sync_all_columns.sql": _MODELS__INCREMENTAL_SYNC_ALL_COLUMNS,
"incremental_append_new_columns_remove_one.sql":
_MODELS__INCREMENTAL_APPEND_NEW_COLUMNS_REMOVE_ONE,
"incremental_append_new_columns_remove_one.sql": _MODELS__INCREMENTAL_APPEND_NEW_COLUMNS_REMOVE_ONE,
"model_a.sql": _MODELS__A,
"incremental_append_new_columns_target.sql":
_MODELS__INCREMENTAL_APPEND_NEW_COLUMNS_TARGET,
"incremental_append_new_columns_target.sql": _MODELS__INCREMENTAL_APPEND_NEW_COLUMNS_TARGET,
"incremental_append_new_columns.sql": _MODELS__INCREMENTAL_APPEND_NEW_COLUMNS,
"incremental_sync_all_columns_target.sql":
_MODELS__INCREMENTAL_SYNC_ALL_COLUMNS_TARGET,
"incremental_append_new_columns_remove_one_target.sql":
_MODELS__INCREMENTAL_APPEND_NEW_COLUMNS_REMOVE_ONE_TARGET,
"incremental_sync_all_columns_target.sql": _MODELS__INCREMENTAL_SYNC_ALL_COLUMNS_TARGET,
"incremental_append_new_columns_remove_one_target.sql": _MODELS__INCREMENTAL_APPEND_NEW_COLUMNS_REMOVE_ONE_TARGET,
}

@pytest.fixture(scope="class")
def tests(self):
return {
"select_from_incremental.sql": _TESTS__SELECT_FROM_INCREMENTAL_IGNORE,
"select_from_a.sql": _TESTS__SELECT_FROM_A,
"select_from_incremental_append_new_columns_target.sql":
_TESTS__SELECT_FROM_INCREMENTAL_APPEND_NEW_COLUMNS_TARGET,
"select_from_incremental_sync_all_columns.sql":
_TESTS__SELECT_FROM_INCREMENTAL_SYNC_ALL_COLUMNS,
"select_from_incremental_sync_all_columns_target.sql":
_TESTS__SELECT_FROM_INCREMENTAL_SYNC_ALL_COLUMNS_TARGET,
"select_from_incremental_ignore_target.sql":
_TESTS__SELECT_FROM_INCREMENTAL_IGNORE_TARGET,
"select_from_incremental_append_new_columns.sql":
_TESTS__SELECT_FROM_INCREMENTAL_APPEND_NEW_COLUMNS,
"select_from_incremental_append_new_columns_target.sql": _TESTS__SELECT_FROM_INCREMENTAL_APPEND_NEW_COLUMNS_TARGET,
"select_from_incremental_sync_all_columns.sql": _TESTS__SELECT_FROM_INCREMENTAL_SYNC_ALL_COLUMNS,
"select_from_incremental_sync_all_columns_target.sql": _TESTS__SELECT_FROM_INCREMENTAL_SYNC_ALL_COLUMNS_TARGET,
"select_from_incremental_ignore_target.sql": _TESTS__SELECT_FROM_INCREMENTAL_IGNORE_TARGET,
"select_from_incremental_append_new_columns.sql": _TESTS__SELECT_FROM_INCREMENTAL_APPEND_NEW_COLUMNS,
}

def run_twice_and_assert(
self, include, compare_source, compare_target, project
):
def run_twice_and_assert(self, include, compare_source, compare_target, project):

# dbt run (twice)
run_args = ['run']
run_args = ["run"]
if include:
run_args.extend(('--select', include))
run_args.extend(("--select", include))
results_one = run_dbt(run_args)
assert len(results_one) == 3

Expand All @@ -92,33 +80,33 @@ def run_twice_and_assert(
check_relations_equal(project.adapter, [compare_source, compare_target])

def run_incremental_append_new_columns(self, project):
select = 'model_a incremental_append_new_columns incremental_append_new_columns_target'
compare_source = 'incremental_append_new_columns'
compare_target = 'incremental_append_new_columns_target'
select = "model_a incremental_append_new_columns incremental_append_new_columns_target"
compare_source = "incremental_append_new_columns"
compare_target = "incremental_append_new_columns_target"
self.run_twice_and_assert(select, compare_source, compare_target, project)

def run_incremental_append_new_columns_remove_one(self, project):
select = 'model_a incremental_append_new_columns_remove_one incremental_append_new_columns_remove_one_target'
compare_source = 'incremental_append_new_columns_remove_one'
compare_target = 'incremental_append_new_columns_remove_one_target'
select = "model_a incremental_append_new_columns_remove_one incremental_append_new_columns_remove_one_target"
compare_source = "incremental_append_new_columns_remove_one"
compare_target = "incremental_append_new_columns_remove_one_target"
self.run_twice_and_assert(select, compare_source, compare_target, project)

def run_incremental_sync_all_columns(self, project):
select = 'model_a incremental_sync_all_columns incremental_sync_all_columns_target'
compare_source = 'incremental_sync_all_columns'
compare_target = 'incremental_sync_all_columns_target'
select = "model_a incremental_sync_all_columns incremental_sync_all_columns_target"
compare_source = "incremental_sync_all_columns"
compare_target = "incremental_sync_all_columns_target"
self.run_twice_and_assert(select, compare_source, compare_target, project)

def run_incremental_sync_remove_only(self, project):
select = 'model_a incremental_sync_remove_only incremental_sync_remove_only_target'
compare_source = 'incremental_sync_remove_only'
compare_target = 'incremental_sync_remove_only_target'
select = "model_a incremental_sync_remove_only incremental_sync_remove_only_target"
compare_source = "incremental_sync_remove_only"
compare_target = "incremental_sync_remove_only_target"
self.run_twice_and_assert(select, compare_source, compare_target, project)

def test_run_incremental_ignore(self, project):
select = 'model_a incremental_ignore incremental_ignore_target'
compare_source = 'incremental_ignore'
compare_target = 'incremental_ignore_target'
select = "model_a incremental_ignore incremental_ignore_target"
compare_source = "incremental_ignore"
compare_target = "incremental_ignore_target"
self.run_twice_and_assert(select, compare_source, compare_target, project)

def test_run_incremental_append_new_columns(self, project):
Expand All @@ -130,7 +118,7 @@ def test_run_incremental_sync_all_columns(self, project):
self.run_incremental_sync_remove_only(project)

def test_run_incremental_fail_on_schema_change(self, project):
select = 'model_a incremental_fail'
run_dbt(['run', '--models', select, '--full-refresh'])
results_two = run_dbt(['run', '--models', select], expect_pass=False)
assert 'Compilation Error' in results_two[1].message
select = "model_a incremental_fail"
run_dbt(["run", "--models", select, "--full-refresh"])
results_two = run_dbt(["run", "--models", select], expect_pass=False)
assert "Compilation Error" in results_two[1].message
24 changes: 5 additions & 19 deletions tests/functional/minimal_cli/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,19 +51,14 @@


class BaseConfigProject:

@pytest.fixture(scope="class")
def project_config_update(self):
return {
"name": "jaffle_shop",
"profile": "jaffle_shop",
"version": "0.1.0",
"config-version": 2,
"clean-targets": [
"target",
"dbt_packages",
"logs"
]
"clean-targets": ["target", "dbt_packages", "logs"],
}

@pytest.fixture(scope="class")
Expand All @@ -78,23 +73,16 @@ def profiles_config_update(self):
"host": "localhost",
"user": "root",
"port": 5432,
"password": "password"
"password": "password",
}
},
"target": "dev"
"target": "dev",
}
}

@pytest.fixture(scope="class")
def packages(self):
return {
"packages": [
{
"package": "dbt-labs/dbt_utils",
"version": "1.0.0"
}
]
}
return {"packages": [{"package": "dbt-labs/dbt_utils", "version": "1.0.0"}]}

@pytest.fixture(scope="class")
def models(self):
Expand All @@ -105,9 +93,7 @@ def models(self):

@pytest.fixture(scope="class")
def snapshots(self):
return {
"sample_snapshot.sql": snapshots__sample_snapshot
}
return {"sample_snapshot.sql": snapshots__sample_snapshot}

@pytest.fixture(scope="class")
def seeds(self):
Expand Down
47 changes: 24 additions & 23 deletions tests/functional/minimal_cli/test_minimal_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,43 +7,44 @@

class TestMinimalCli(BaseConfigProject):
"""Test the minimal/happy-path for the CLI using the Click CliRunner"""

@pytest.fixture(scope="class")
def runner(self):
return CliRunner()

def test_clean(self, runner, project):
result = runner.invoke(cli, ['clean'])
assert 'target' in result.output
assert 'dbt_packages' in result.output
assert 'logs' in result.output
result = runner.invoke(cli, ["clean"])
assert "target" in result.output
assert "dbt_packages" in result.output
assert "logs" in result.output

def test_deps(self, runner, project):
result = runner.invoke(cli, ['deps'])
assert 'dbt-labs/dbt_utils' in result.output
assert '1.0.0' in result.output
result = runner.invoke(cli, ["deps"])
assert "dbt-labs/dbt_utils" in result.output
assert "1.0.0" in result.output

def test_ls(self, runner, project):
runner.invoke(cli, ['deps'])
ls_result = runner.invoke(cli, ['ls'])
assert '1 seed' in ls_result.output
assert '1 model' in ls_result.output
assert '5 tests' in ls_result.output
assert '1 snapshot' in ls_result.output
runner.invoke(cli, ["deps"])
ls_result = runner.invoke(cli, ["ls"])
assert "1 seed" in ls_result.output
assert "1 model" in ls_result.output
assert "5 tests" in ls_result.output
assert "1 snapshot" in ls_result.output

def test_build(self, runner, project):
runner.invoke(cli, ['deps'])
result = runner.invoke(cli, ['build'])
runner.invoke(cli, ["deps"])
result = runner.invoke(cli, ["build"])
# 1 seed, 1 model, 2 tests
assert 'PASS=4' in result.output
assert "PASS=4" in result.output
# 2 tests
assert 'ERROR=2' in result.output
assert "ERROR=2" in result.output
# Singular test
assert 'WARN=1' in result.output
assert "WARN=1" in result.output
# 1 snapshot
assert 'SKIP=1' in result.output
assert "SKIP=1" in result.output

def test_docs_generate(self, runner, project):
runner.invoke(cli, ['deps'])
result = runner.invoke(cli, ['docs', 'generate'])
assert 'Building catalog' in result.output
assert 'Catalog written' in result.output
runner.invoke(cli, ["deps"])
result = runner.invoke(cli, ["docs", "generate"])
assert "Building catalog" in result.output
assert "Catalog written" in result.output
35 changes: 20 additions & 15 deletions tests/unit/test_cli_flags.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,23 +26,28 @@ def test_mp_context(self, run_context):
flags = Flags(run_context)
assert flags.MP_CONTEXT == get_context("spawn")

@pytest.mark.parametrize('param', cli.params)
@pytest.mark.parametrize("param", cli.params)
def test_cli_group_flags_from_params(self, run_context, param):
flags = Flags(run_context)
assert hasattr(flags, param.name.upper())
assert getattr(flags, param.name.upper()) == run_context.params[param.name.lower()]

@pytest.mark.parametrize('do_not_track,expected_anonymous_usage_stats', [
("1", False),
("t", False),
("true", False),
("y", False),
("yes", False),
("false", True),
("anything", True),
("2", True),
])
def test_anonymous_usage_state(self, monkeypatch, run_context, do_not_track, expected_anonymous_usage_stats):
@pytest.mark.parametrize(
"do_not_track,expected_anonymous_usage_stats",
[
("1", False),
("t", False),
("true", False),
("y", False),
("yes", False),
("false", True),
("anything", True),
("2", True),
],
)
def test_anonymous_usage_state(
self, monkeypatch, run_context, do_not_track, expected_anonymous_usage_stats
):
monkeypatch.setenv("DO_NOT_TRACK", do_not_track)

flags = Flags(run_context)
Expand All @@ -52,16 +57,16 @@ def test_empty_user_config_uses_default(self, run_context):
user_config = UserConfig()

flags = Flags(run_context, user_config)
assert flags.USE_COLORS == run_context.params['use_colors']
assert flags.USE_COLORS == run_context.params["use_colors"]

def test_none_user_config_uses_default(self, run_context):
flags = Flags(run_context, None)
assert flags.USE_COLORS == run_context.params['use_colors']
assert flags.USE_COLORS == run_context.params["use_colors"]

def test_prefer_user_config_to_default(self, run_context):
user_config = UserConfig(use_colors=False)
# ensure default value is not the same as user config
assert run_context.params['use_colors'] is not user_config.use_colors
assert run_context.params["use_colors"] is not user_config.use_colors

flags = Flags(run_context, user_config)
assert flags.USE_COLORS == user_config.use_colors
Expand Down

0 comments on commit 6a81545

Please sign in to comment.