diff --git a/.changes/unreleased/Fixes-20230630-100007.yaml b/.changes/unreleased/Fixes-20230630-100007.yaml new file mode 100644 index 00000000..b974fbb9 --- /dev/null +++ b/.changes/unreleased/Fixes-20230630-100007.yaml @@ -0,0 +1,6 @@ +kind: Fixes +body: Fix false positive error in semantic model defaults validation +time: 2023-06-30T10:00:07.114321-07:00 +custom: + Author: tlento + Issue: None diff --git a/dbt_semantic_interfaces/validations/semantic_models.py b/dbt_semantic_interfaces/validations/semantic_models.py index 6e277565..dd931383 100644 --- a/dbt_semantic_interfaces/validations/semantic_models.py +++ b/dbt_semantic_interfaces/validations/semantic_models.py @@ -197,11 +197,10 @@ def validate_manifest(semantic_manifest: SemanticManifestT) -> Sequence[Validati def _validate_default_agg_time_dimension(semantic_model: SemanticModel) -> List[ValidationIssue]: issues: List[ValidationIssue] = [] - if semantic_model.defaults is None: + if semantic_model.defaults is None or semantic_model.defaults.agg_time_dimension is None: return [] default_agg_time_dimension = semantic_model.defaults.agg_time_dimension - assert default_agg_time_dimension is not None, "should not be None" if not SemanticModelValidationHelpers.time_dimension_in_model( time_dimension_name=default_agg_time_dimension, semantic_model=semantic_model diff --git a/dbt_semantic_interfaces/validations/validator_helpers.py b/dbt_semantic_interfaces/validations/validator_helpers.py index 9af61c13..ec198c41 100644 --- a/dbt_semantic_interfaces/validations/validator_helpers.py +++ b/dbt_semantic_interfaces/validations/validator_helpers.py @@ -407,8 +407,8 @@ def __init__(self, issues: Tuple[ValidationIssue, ...]) -> None: # noqa: D class SemanticModelValidationHelpers: """Class containing all the helpers related to semantic model validations.""" - @classmethod - def time_dimension_in_model(cls, time_dimension_name: str, semantic_model: SemanticModel) -> bool: # noqa: D + @staticmethod + def time_dimension_in_model(time_dimension_name: str, semantic_model: SemanticModel) -> bool: # noqa: D for dimension in semantic_model.dimensions: if dimension.type == DimensionType.TIME and dimension.name == time_dimension_name: return True