Skip to content

Commit

Permalink
Add output tests
Browse files Browse the repository at this point in the history
  • Loading branch information
courtneyholcomb committed Dec 19, 2024
1 parent 74be070 commit d7f0ab5
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 0 deletions.
62 changes: 62 additions & 0 deletions tests_metricflow/integration/query_output/test_offset_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

import pytest
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
from metricflow_semantics.specs.query_param_implementations import OrderByParameter, TimeDimensionParameter
from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration

from metricflow.engine.metricflow_engine import MetricFlowQueryRequest
Expand Down Expand Up @@ -58,3 +61,62 @@ def test_offset_to_grain_with_multiple_granularities( # noqa: D103
snapshot_str=query_result.result_df.text_format(),
sql_engine=sql_client.sql_engine_type,
)


@pytest.mark.sql_engine_snapshot
def test_custom_offset_window_with_base_grain(
request: FixtureRequest,
mf_test_configuration: MetricFlowTestConfiguration,
sql_client: SqlClient,
it_helpers: IntegrationTestHelpers,
) -> None:
"""Gives a side by side comparison of bookings and bookings_offset_one_martian_day."""
query_result = it_helpers.mf_engine.query(
MetricFlowQueryRequest.create_with_random_request_id(
metric_names=["bookings", "bookings_offset_one_martian_day"],
group_by_names=["metric_time__day", "metric_time__martian_day"],
order_by_names=["metric_time__day", "metric_time__martian_day"],
)
)
assert query_result.result_df is not None, "Unexpected empty result."

assert_str_snapshot_equal(
request=request,
mf_test_configuration=mf_test_configuration,
snapshot_id="query_output",
snapshot_str=query_result.result_df.text_format(),
sql_engine=sql_client.sql_engine_type,
)


@pytest.mark.sql_engine_snapshot
def test_custom_offset_window_with_grains_and_date_part( # noqa: D103
request: FixtureRequest,
mf_test_configuration: MetricFlowTestConfiguration,
sql_client: SqlClient,
it_helpers: IntegrationTestHelpers,
) -> None:
query_result = it_helpers.mf_engine.query(
MetricFlowQueryRequest.create_with_random_request_id(
metric_names=["bookings_offset_one_martian_day"],
group_by=(
TimeDimensionParameter(name="booking__ds", grain=TimeGranularity.MONTH.name),
TimeDimensionParameter(name="metric_time", date_part=DatePart.YEAR),
TimeDimensionParameter(name="metric_time", grain="martian_day"),
),
order_by=(
OrderByParameter(TimeDimensionParameter(name="booking__ds", grain=TimeGranularity.MONTH.name)),
OrderByParameter(TimeDimensionParameter(name="metric_time", date_part=DatePart.YEAR)),
OrderByParameter(TimeDimensionParameter(name="metric_time", grain="martian_day")),
),
)
)
assert query_result.result_df is not None, "Unexpected empty result."

assert_str_snapshot_equal(
request=request,
mf_test_configuration=mf_test_configuration,
snapshot_id="query_output",
snapshot_str=query_result.result_df.text_format(),
sql_engine=sql_client.sql_engine_type,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
test_name: test_custom_offset_window_with_base_grain
test_filename: test_offset_metrics.py
docstring:
Gives a side by side comparison of bookings and bookings_offset_one_martian_day.
---
metric_time__martian_day metric_time__day bookings bookings_offset_one_martian_day
-------------------------- ------------------- ---------- ---------------------------------
2020-01-08T00:00:00 2019-12-01T00:00:00 1 None
2020-01-08T00:00:00 2019-12-18T00:00:00 10 None
2020-01-08T00:00:00 2019-12-19T00:00:00 18 None
2020-01-08T00:00:00 2019-12-20T00:00:00 2 None
2020-01-08T00:00:00 2020-01-01T00:00:00 5 None
2020-01-08T00:00:00 2020-01-02T00:00:00 9 None
2020-01-08T00:00:00 2020-01-03T00:00:00 1 None
2020-01-09T00:00:00 2022-08-27T00:00:00 None 1
2020-01-09T00:00:00 2022-09-13T00:00:00 None 10
2020-01-09T00:00:00 2022-09-14T00:00:00 None 18
2020-01-09T00:00:00 2022-09-15T00:00:00 None 2
2020-01-09T00:00:00 2022-09-27T00:00:00 None 5
2020-01-09T00:00:00 2022-09-28T00:00:00 None 9
2020-01-09T00:00:00 2022-09-29T00:00:00 None 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
test_name: test_custom_offset_window_with_grains_and_date_part
test_filename: test_offset_metrics.py
---
metric_time__martian_day booking__ds__month metric_time__extract_year bookings_offset_one_martian_day
-------------------------- -------------------- --------------------------- ---------------------------------
2020-01-09T00:00:00 2022-08-01T00:00:00 2022 1
2020-01-09T00:00:00 2022-09-01T00:00:00 2022 45

0 comments on commit d7f0ab5

Please sign in to comment.