Skip to content

Commit

Permalink
add unit tests for BaseRelation.render_event_time_filtered
Browse files Browse the repository at this point in the history
  • Loading branch information
MichelleArk committed Sep 5, 2024
1 parent 321adac commit 826d4c9
Showing 1 changed file with 68 additions and 1 deletion.
69 changes: 68 additions & 1 deletion tests/unit/test_relation.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from dataclasses import dataclass, replace

from datetime import datetime
import pytest

from dbt.adapters.base import BaseRelation
from dbt.adapters.base.relation import EventTimeFilter
from dbt.adapters.contracts.relation import RelationType


Expand Down Expand Up @@ -81,6 +82,72 @@ def test_render_limited(limit, require_alias, expected_result):
assert str(my_relation) == expected_result


@pytest.mark.parametrize(
"event_time_filter,require_alias,expected_result",
[
(None, False, '"test_database"."test_schema"."test_identifier"'),
(
EventTimeFilter(field_name="column"),
False,
'"test_database"."test_schema"."test_identifier"',
),
(None, True, '"test_database"."test_schema"."test_identifier"'),
(
EventTimeFilter(field_name="column"),
True,
'"test_database"."test_schema"."test_identifier"',
),
(
EventTimeFilter(field_name="column", start=datetime(year=2020, month=1, day=1)),
False,
"""(select * from "test_database"."test_schema"."test_identifier" where column >= '2020-01-01 00:00:00')""",
),
(
EventTimeFilter(field_name="column", start=datetime(year=2020, month=1, day=1)),
True,
"""(select * from "test_database"."test_schema"."test_identifier" where column >= '2020-01-01 00:00:00') _dbt_et_filter_subq_test_identifier""",
),
(
EventTimeFilter(field_name="column", end=datetime(year=2020, month=1, day=1)),
False,
"""(select * from "test_database"."test_schema"."test_identifier" where column < '2020-01-01 00:00:00')""",
),
(
EventTimeFilter(field_name="column", start=datetime(year=2020, month=1, day=1), end=datetime(year=2020, month=1, day=2)),
False,
"""(select * from "test_database"."test_schema"."test_identifier" where column >= '2020-01-01 00:00:00' and column < '2020-01-02 00:00:00')""",
),
],
)
def test_render_event_time_filtered(event_time_filter, require_alias, expected_result):
my_relation = BaseRelation.create(
database="test_database",
schema="test_schema",
identifier="test_identifier",
event_time_filter=event_time_filter,
require_alias=require_alias,
)
actual_result = my_relation.render_event_time_filtered()
assert actual_result == expected_result
assert str(my_relation) == expected_result


def test_render_event_time_filtered_and_limited():
my_relation = BaseRelation.create(
database="test_database",
schema="test_schema",
identifier="test_identifier",
event_time_filter=EventTimeFilter(field_name="column", start=datetime(year=2020, month=1, day=1), end=datetime(year=2020, month=1, day=2)),
limit=0,
require_alias=False,
)
expected_result = """(select * from (select * from "test_database"."test_schema"."test_identifier" where false limit 0) where column >= '2020-01-01 00:00:00' and column < '2020-01-02 00:00:00')"""

actual_result = my_relation.render_event_time_filtered(my_relation.render_limited())
assert actual_result == expected_result
assert str(my_relation) == expected_result


def test_create_ephemeral_from_uses_identifier():
@dataclass
class Node:
Expand Down

0 comments on commit 826d4c9

Please sign in to comment.