code: def test_cumulative_metric_with_non_adjustable_time_filter(
      request: FixtureRequest,
      mf_test_session_state: MetricFlowTestSessionState,
      column_association_resolver: ColumnAssociationResolver,
      query_parser: MetricFlowQueryParser,
      dataflow_plan_builder: DataflowPlanBuilder,
      dataflow_to_sql_converter: DataflowToSqlQueryPlanConverter,
      consistent_id_object_repository: ConsistentIdObjectRepository,
      sql_client: SqlClient,
  ) -> None:
      """Tests rendering a cumulative metric query with a time filter that cannot be automatically adjusted.
  
      Not all query inputs with time constraint filters allow us to adjust the time constraint to include the full
      span of input data for a cumulative metric. When we do not have an adjustable time filter we must include all
      input data in order to ensure the cumulative metric is correct.
      """
      query_spec = query_parser.parse_and_validate_query(
          metric_names=("every_two_days_bookers",),
          group_by_names=(METRIC_TIME_ELEMENT_NAME,),
          where_constraint=PydanticWhereFilter(
              where_sql_template=(
                  "{{ TimeDimension('metric_time', 'day') }} = '2020-01-03' "
                  "or {{ TimeDimension('metric_time', 'day') }} = '2020-01-07'"
              )
          ),
      )
      dataflow_plan = dataflow_plan_builder.build_plan(query_spec)
  
      convert_and_check(
          request=request,
          mf_test_session_state=mf_test_session_state,
          dataflow_to_sql_converter=dataflow_to_sql_converter,
          sql_client=sql_client,
          node=dataflow_plan.sink_output_nodes[0].parent_node,
      )
  
imports: from __future__ import annotations
  import pytest
  from _pytest.fixtures import FixtureRequest
  from dbt_semantic_interfaces.implementations.filters.where_filter import PydanticWhereFilter
  from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
  from dbt_semantic_interfaces.test_utils import as_datetime
  from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
  from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
  from metricflow.filters.time_constraint import TimeRangeConstraint
  from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
  from metricflow.protocols.sql_client import SqlClient
  from metricflow.query.query_parser import MetricFlowQueryParser
  from metricflow.specs.column_assoc import ColumnAssociationResolver
  from metricflow.specs.specs import MetricFlowQuerySpec, MetricSpec, TimeDimensionSpec
  from metricflow.test.fixtures.model_fixtures import ConsistentIdObjectRepository
  from metricflow.test.fixtures.setup_fixtures import MetricFlowTestSessionState
  from metricflow.test.query_rendering.compare_rendered_query import convert_and_check
label_desc: Use image node_id 3 for calling a global function with example usage: test_cumulative_metric_with_non_adjustable_time_filter(request, mf_test_session_state, column_association_resolver, query_parser, dataflow_plan_builder, dataflow_to_sql_converter, consistent_id_object_repository, sql_client) without return types