Skip to content

Commit

Permalink
Add doc_blocks to test_contract_configs
Browse files Browse the repository at this point in the history
  • Loading branch information
aranke committed Jan 21, 2025
1 parent c344b2c commit aec7780
Showing 1 changed file with 69 additions and 2 deletions.
71 changes: 69 additions & 2 deletions tests/functional/configs/test_contract_configs.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import pytest

from dbt.artifacts.resources.v1.components import ColumnInfo
from dbt.exceptions import ParsingError, ValidationError
from dbt.tests.util import (
get_artifact,
Expand All @@ -10,6 +11,7 @@
run_dbt_and_capture,
write_file,
)
from dbt_common.contracts.constraints import ColumnLevelConstraint, ConstraintType

my_model_sql = """
{{
Expand Down Expand Up @@ -331,9 +333,74 @@ def test__model_contract_true(self, project):

assert contract_actual_config.enforced is True

expected_columns = "{'id': ColumnInfo(name='id', description='hello', meta={}, data_type='integer', constraints=[ColumnLevelConstraint(type=<ConstraintType.not_null: 'not_null'>, name=None, expression=None, warn_unenforced=True, warn_unsupported=True, to=None, to_columns=[]), ColumnLevelConstraint(type=<ConstraintType.primary_key: 'primary_key'>, name=None, expression=None, warn_unenforced=True, warn_unsupported=True, to=None, to_columns=[]), ColumnLevelConstraint(type=<ConstraintType.check: 'check'>, name=None, expression='(id > 0)', warn_unenforced=True, warn_unsupported=True, to=None, to_columns=[])], quote=True, tags=[], _extra={}, granularity=None), 'color': ColumnInfo(name='color', description='', meta={}, data_type='string', constraints=[], quote=None, tags=[], _extra={}, granularity=None), 'date_day': ColumnInfo(name='date_day', description='', meta={}, data_type='date', constraints=[], quote=None, tags=[], _extra={}, granularity=None)}"
expected_columns = {
"id": ColumnInfo(
name="id",
description="hello",
meta={},
data_type="integer",
doc_blocks=[],
constraints=[
ColumnLevelConstraint(
type=ConstraintType.not_null,
name=None,
expression=None,
warn_unenforced=True,
warn_unsupported=True,
to=None,
to_columns=[],
),
ColumnLevelConstraint(
type=ConstraintType.primary_key,
name=None,
expression=None,
warn_unenforced=True,
warn_unsupported=True,
to=None,
to_columns=[],
),
ColumnLevelConstraint(
type=ConstraintType.check,
name=None,
expression="(id > 0)",
warn_unenforced=True,
warn_unsupported=True,
to=None,
to_columns=[],
),
],
quote=True,
tags=[],
_extra={},
granularity=None,
),
"color": ColumnInfo(
name="color",
description="",
doc_blocks=[],
meta={},
data_type="string",
constraints=[],
quote=None,
tags=[],
_extra={},
granularity=None,
),
"date_day": ColumnInfo(
name="date_day",
description="",
doc_blocks=[],
meta={},
data_type="date",
constraints=[],
quote=None,
tags=[],
_extra={},
granularity=None,
),
}

assert expected_columns == str(my_model_columns)
assert expected_columns == my_model_columns

# compiled fields aren't in the manifest above because it only has parsed fields
manifest_json = get_artifact(project.project_root, "target", "manifest.json")
Expand Down

0 comments on commit aec7780

Please sign in to comment.