Skip to content

Commit

Permalink
Merge pull request #472 from elementary-data/ele-1529-check-elementar…
Browse files Browse the repository at this point in the history
…y-is-enabled-in-materialization

Check Elementary is enabled in materialization.
  • Loading branch information
elongl authored Aug 9, 2023
2 parents 910041f + b5cf543 commit ee67449
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 11 deletions.
2 changes: 1 addition & 1 deletion integration_tests/integration_tests/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
import pytest
from dbt.version import __version__ as dbt_version
from dbt_project import DbtProject
from packaging import version
from filelock import FileLock
from packaging import version


def pytest_addoption(parser):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
from datetime import datetime, timedelta

from data_generator import DATE_FORMAT, generate_dates
from dbt_project import DbtProject
from data_generator import generate_dates, DATE_FORMAT


TEST_NAME = "elementary.event_freshness_anomalies"
EVENT_TIMESTAMP_COLUMN = "event_timestamp"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
from dataclasses import dataclass
from datetime import datetime, timedelta

from parametrization import Parametrization
import pytest

from data_generator import DATE_FORMAT, generate_dates
from dbt_project import DbtProject
from data_generator import generate_dates, DATE_FORMAT

from parametrization import Parametrization

TEST_NAME = "elementary.freshness_anomalies"
TIMESTAMP_COLUMN = "timestamp"
Expand Down
11 changes: 7 additions & 4 deletions integration_tests/integration_tests/tests/test_jsonschema.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import json
import pytest

import pytest
from dbt_project import DbtProject

MIN_LENGTH = 3
Expand All @@ -9,10 +9,13 @@
COLUMN_NAME = "jsonschema_column"
TEST_NAME = "elementary.json_schema"

# BigQuery also supports JSON schema tests, but the Python tests are currently flaky.
SUPPORTED_TARGETS = ["snowflake"]


@pytest.mark.requires_dbt_version("1.3.0")
class TestJsonschema:
@pytest.mark.only_on_targets(["snowflake", "bigquery"])
@pytest.mark.only_on_targets(SUPPORTED_TARGETS)
def test_valid(self, test_id: str, dbt_project: DbtProject):
valid_value = json.dumps("".join("*" for _ in range(MIN_LENGTH)))
data = [{COLUMN_NAME: valid_value}]
Expand All @@ -21,7 +24,7 @@ def test_valid(self, test_id: str, dbt_project: DbtProject):
)
assert result["status"] == "pass"

@pytest.mark.only_on_targets(["snowflake", "bigquery"])
@pytest.mark.only_on_targets(SUPPORTED_TARGETS)
def test_invalid(self, test_id: str, dbt_project: DbtProject):
invalid_value = json.dumps("".join("*" for _ in range(MIN_LENGTH - 1)))
data = [{COLUMN_NAME: invalid_value}]
Expand All @@ -30,7 +33,7 @@ def test_invalid(self, test_id: str, dbt_project: DbtProject):
)
assert result["status"] == "fail"

@pytest.mark.skip_targets(["snowflake", "bigquery"])
@pytest.mark.skip_targets([*SUPPORTED_TARGETS, "bigquery"])
def test_invalid_target(self, test_id: str, dbt_project: DbtProject):
data = [{COLUMN_NAME: str()}]
result = dbt_project.test(
Expand Down
20 changes: 20 additions & 0 deletions macros/edr/materializations/model/incremental.sql
Original file line number Diff line number Diff line change
@@ -1,33 +1,53 @@
{% materialization incremental, default %}
{% set relations = dbt.materialization_incremental_default() %}
{% if not elementary.is_elementary_enabled() %}
{% do return(relations) %}
{% endif %}

{% set metrics = elementary.query_metrics() %}
{% do elementary.cache_metrics(metrics) %}
{% do return(relations) %}
{% endmaterialization %}

{% materialization incremental, adapter="snowflake" %}
{% set relations = dbt.materialization_incremental_snowflake() %}
{% if not elementary.is_elementary_enabled() %}
{% do return(relations) %}
{% endif %}

{% set metrics = elementary.query_metrics() %}
{% do elementary.cache_metrics(metrics) %}
{% do return(relations) %}
{% endmaterialization %}

{% materialization incremental, adapter="bigquery" %}
{% set relations = dbt.materialization_incremental_bigquery() %}
{% if not elementary.is_elementary_enabled() %}
{% do return(relations) %}
{% endif %}

{% set metrics = elementary.query_metrics() %}
{% do elementary.cache_metrics(metrics) %}
{% do return(relations) %}
{% endmaterialization %}

{% materialization incremental, adapter="spark" %}
{% set relations = dbt.materialization_incremental_spark() %}
{% if not elementary.is_elementary_enabled() %}
{% do return(relations) %}
{% endif %}

{% set metrics = elementary.query_metrics() %}
{% do elementary.cache_metrics(metrics) %}
{% do return(relations) %}
{% endmaterialization %}

{% materialization incremental, adapter="databricks" %}
{% set relations = dbt.materialization_incremental_databricks() %}
{% if not elementary.is_elementary_enabled() %}
{% do return(relations) %}
{% endif %}

{% set metrics = elementary.query_metrics() %}
{% do elementary.cache_metrics(metrics) %}
{% do return(relations) %}
Expand Down
20 changes: 20 additions & 0 deletions macros/edr/materializations/model/table.sql
Original file line number Diff line number Diff line change
@@ -1,33 +1,53 @@
{% materialization table, default %}
{% set relations = dbt.materialization_table_default() %}
{% if not elementary.is_elementary_enabled() %}
{% do return(relations) %}
{% endif %}

{% set metrics = elementary.query_metrics() %}
{% do elementary.cache_metrics(metrics) %}
{% do return(relations) %}
{% endmaterialization %}

{% materialization table, adapter="snowflake" %}
{% set relations = dbt.materialization_table_snowflake() %}
{% if not elementary.is_elementary_enabled() %}
{% do return(relations) %}
{% endif %}

{% set metrics = elementary.query_metrics() %}
{% do elementary.cache_metrics(metrics) %}
{% do return(relations) %}
{% endmaterialization %}

{% materialization table, adapter="bigquery" %}
{% set relations = dbt.materialization_table_bigquery() %}
{% if not elementary.is_elementary_enabled() %}
{% do return(relations) %}
{% endif %}

{% set metrics = elementary.query_metrics() %}
{% do elementary.cache_metrics(metrics) %}
{% do return(relations) %}
{% endmaterialization %}

{% materialization table, adapter="spark" %}
{% set relations = dbt.materialization_table_spark() %}
{% if not elementary.is_elementary_enabled() %}
{% do return(relations) %}
{% endif %}

{% set metrics = elementary.query_metrics() %}
{% do elementary.cache_metrics(metrics) %}
{% do return(relations) %}
{% endmaterialization %}

{% materialization table, adapter="databricks" %}
{% set relations = dbt.materialization_table_databricks() %}
{% if not elementary.is_elementary_enabled() %}
{% do return(relations) %}
{% endif %}

{% set metrics = elementary.query_metrics() %}
{% do elementary.cache_metrics(metrics) %}
{% do return(relations) %}
Expand Down

0 comments on commit ee67449

Please sign in to comment.