Skip to content

Commit

Permalink
fix deprecation firing for microbatch model w custom strategy
Browse files Browse the repository at this point in the history
  • Loading branch information
MichelleArk committed Nov 12, 2024
1 parent 89caa33 commit f1a7b3f
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 16 deletions.
3 changes: 2 additions & 1 deletion core/dbt/parser/manifest.py
Original file line number Diff line number Diff line change
Expand Up @@ -662,9 +662,10 @@ def check_for_microbatch_deprecations(self) -> None:
has_microbatch_model = True
break

if has_microbatch_model and self.manifest._microbatch_macro_is_core(
if has_microbatch_model and not self.manifest._microbatch_macro_is_core(
self.root_project.project_name
):
breakpoint()

Check warning on line 668 in core/dbt/parser/manifest.py

View check run for this annotation

Codecov / codecov/patch

core/dbt/parser/manifest.py#L668

Added line #L668 was not covered by tests
dbt.deprecations.warn("microbatch-macro-outside-of-batches-deprecation")

def load_and_parse_macros(self, project_parser_files):
Expand Down
28 changes: 13 additions & 15 deletions tests/functional/microbatch/test_microbatch.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,19 +182,16 @@ def test_use_custom_microbatch_strategy_by_default(
project,
deprecation_catcher: EventCatcher,
):
with mock.patch.object(
type(project.adapter), "valid_incremental_strategies", lambda _: []
):
# Initial run
run_dbt(["run"])
# Initial run fires deprecation
run_dbt(["run"], callbacks=[deprecation_catcher.catch])
# Deprecation warning about custom microbatch macro fired
assert len(deprecation_catcher.caught_events) == 1

# Incremental run uses custom strategy
_, logs = run_dbt_and_capture(["run"])
assert "custom microbatch strategy" in logs
# The custom strategy wasn't used with batch functionality
assert "START batch" not in logs
# Deprecation warning about custom microbatch macro fired
assert len(deprecation_catcher.caught_events) == 0
# Incremental run uses custom strategy
_, logs = run_dbt_and_capture(["run"])
assert "custom microbatch strategy" in logs
# The custom strategy wasn't used with batch functionality
assert "START batch" not in logs


class TestMicrobatchCustomUserStrategyProjectFlagTrueValid(BaseMicrobatchCustomUserStrategy):
Expand All @@ -208,18 +205,19 @@ def test_use_custom_microbatch_strategy_project_flag_true_invalid_incremental_st
):
# Initial run
with patch_microbatch_end_time("2020-01-03 13:57:00"):
run_dbt(["run"])
run_dbt(["run"], callbacks=[deprecation_catcher.catch])
# Deprecation warning about custom microbatch macro not fired
assert len(deprecation_catcher.caught_events) == 0

# Incremental run uses custom strategy
with patch_microbatch_end_time("2020-01-03 13:57:00"):
_, logs = run_dbt_and_capture(["run"])
assert "custom microbatch strategy" in logs
# The custom strategy was used with batch functionality
assert "START batch" in logs
# Deprecation warning about custom microbatch macro not fired
assert len(deprecation_catcher.caught_events) == 0


# TODO: fix this test once adapter behaviour flag gating is fixed
class TestMicrobatchCustomUserStrategyProjectFlagTrueInvalid(BaseMicrobatchCustomUserStrategy):
def test_use_custom_microbatch_strategy_project_flag_true_invalid_incremental_strategy(
self, project
Expand Down

0 comments on commit f1a7b3f

Please sign in to comment.