Skip to content

Commit

Permalink
Disable cumulative_type_params validations temporarily
Browse files Browse the repository at this point in the history
  • Loading branch information
courtneyholcomb committed Jun 20, 2024
1 parent 973e120 commit 2ffeb77
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 16 deletions.
7 changes: 5 additions & 2 deletions dbt_semantic_interfaces/validations/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
validate_safely,
)

# Temp: undo once cumulative_type_params are supported in MF
CUMULATIVE_TYPE_PARAMS_SUPPORTED = False


class CumulativeMetricRule(SemanticManifestValidationRule[SemanticManifestT], Generic[SemanticManifestT]):
"""Checks that cumulative sum metrics are configured properly."""
Expand All @@ -42,7 +45,7 @@ def _validate_cumulative_sum_metric_params(metric: Metric) -> List[ValidationIss
for field in ("window", "grain_to_date"):
type_params_field_value = getattr(metric.type_params, field)
# Warn that the old type_params structure has been deprecated.
if type_params_field_value:
if type_params_field_value and CUMULATIVE_TYPE_PARAMS_SUPPORTED:
issues.append(
ValidationWarning(
context=metric_context,
Expand All @@ -62,7 +65,7 @@ def _validate_cumulative_sum_metric_params(metric: Metric) -> List[ValidationIss
type_params_field_value
and cumulative_type_params_field_value
and cumulative_type_params_field_value != type_params_field_value
):
) and CUMULATIVE_TYPE_PARAMS_SUPPORTED:
issues.append(
ValidationError(
context=metric_context,
Expand Down
37 changes: 23 additions & 14 deletions tests/validations/test_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
TimeGranularity,
)
from dbt_semantic_interfaces.validations.metrics import (
CUMULATIVE_TYPE_PARAMS_SUPPORTED,
ConversionMetricRule,
CumulativeMetricRule,
DerivedMetricRule,
Expand Down Expand Up @@ -690,17 +691,25 @@ def test_cumulative_metrics() -> None: # noqa: D
)

build_issues = validation_results.all_issues
for issue in build_issues:
print(issue.message)
assert len(build_issues) == 8
expected_substr1 = "Both window and grain_to_date set for cumulative metric. Please set one or the other."
expected_substr2 = "Got differing values for `window`"
expected_substr3 = "Got differing values for `grain_to_date`"
expected_substr4 = "Cumulative `type_params.window` field has been moved and will soon be deprecated."
expected_substr5 = "Cumulative `type_params.grain_to_date` field has been moved and will soon be deprecated."
missing_error_strings = set()
for expected_str in [expected_substr1, expected_substr2, expected_substr3, expected_substr4, expected_substr5]:
if not any(actual_str.as_readable_str().find(expected_str) != -1 for actual_str in build_issues):
missing_error_strings.add(expected_str)
assert len(missing_error_strings) == 0, "Failed to match one or more expected issues: "
f"{missing_error_strings} in {set([x.as_readable_str() for x in build_issues])}"
if CUMULATIVE_TYPE_PARAMS_SUPPORTED:
assert len(build_issues) == 8
expected_substr1 = "Both window and grain_to_date set for cumulative metric. Please set one or the other."
expected_substr2 = "Got differing values for `window`"
expected_substr3 = "Got differing values for `grain_to_date`"
expected_substr4 = "Cumulative `type_params.window` field has been moved and will soon be deprecated."
expected_substr5 = "Cumulative `type_params.grain_to_date` field has been moved and will soon be deprecated."
missing_error_strings = set()
for expected_str in [expected_substr1, expected_substr2, expected_substr3, expected_substr4, expected_substr5]:
if not any(actual_str.as_readable_str().find(expected_str) != -1 for actual_str in build_issues):
missing_error_strings.add(expected_str)
assert len(missing_error_strings) == 0, "Failed to match one or more expected issues: "
f"{missing_error_strings} in {set([x.as_readable_str() for x in build_issues])}"
else:
assert len(build_issues) == 1
expected_substr1 = "Both window and grain_to_date set for cumulative metric. Please set one or the other."
missing_error_strings = set()
for expected_str in [expected_substr1]:
if not any(actual_str.as_readable_str().find(expected_str) != -1 for actual_str in build_issues):
missing_error_strings.add(expected_str)
assert len(missing_error_strings) == 0, "Failed to match one or more expected issues: "
f"{missing_error_strings} in {set([x.as_readable_str() for x in build_issues])}"

0 comments on commit 2ffeb77

Please sign in to comment.