Repository: great-expectations/great_expectations

Issue:
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/datasource/fluent/__init__.py b/great_expectations/datasource/fluent/__init__.py
--- a/great_expectations/datasource/fluent/__init__.py
+++ b/great_expectations/datasource/fluent/__init__.py
@@ -8,7 +8,10 @@
     Sorter,
     BatchMetadata,
 )
-from great_expectations.datasource.fluent.batch_request import BatchRequest
+from great_expectations.datasource.fluent.batch_request import (
+    BatchRequest,
+    BatchRequestOptions,
+)
 from great_expectations.datasource.fluent.pandas_datasource import (
     PandasDatasource,
     _PandasDatasource,
diff --git a/great_expectations/datasource/fluent/interfaces.py b/great_expectations/datasource/fluent/interfaces.py
--- a/great_expectations/datasource/fluent/interfaces.py
+++ b/great_expectations/datasource/fluent/interfaces.py
@@ -62,10 +62,7 @@
     from great_expectations.core.config_provider import _ConfigurationProvider
     from great_expectations.data_context import AbstractDataContext as GXDataContext
     from great_expectations.datasource.data_connector.batch_filter import BatchSlice
-    from great_expectations.datasource.fluent.batch_request import (
-        BatchRequest,
-        BatchRequestOptions,
-    )
+    from great_expectations.datasource.fluent import BatchRequest, BatchRequestOptions
     from great_expectations.datasource.fluent.data_asset.data_connector import (
         DataConnector,
     )


Test patch:
diff --git a/tests/checkpoint/conftest.py b/tests/checkpoint/conftest.py
--- a/tests/checkpoint/conftest.py
+++ b/tests/checkpoint/conftest.py
@@ -1,14 +1,93 @@
 import os
 import shutil
+from typing import Dict, List
+
+import pandas as pd
 
 import pytest
 
+from great_expectations.datasource.fluent import BatchRequest as FluentBatchRequest
 from great_expectations.core import ExpectationConfiguration
 from great_expectations.core.yaml_handler import YAMLHandler
 from great_expectations.data_context.util import file_relative_path
 from great_expectations.util import get_context
 
 
+@pytest.fixture
+def update_data_docs_action():
+    return {
+        "name": "update_data_docs",
+        "action": {"class_name": "UpdateDataDocsAction", "site_names": []},
+    }
+
+
+@pytest.fixture
+def store_eval_parameter_action():
+    return {
+        "name": "store_evaluation_params",
+        "action": {"class_name": "StoreEvaluationParametersAction"},
+    }
+
+
+@pytest.fixture
+def store_validation_result_action():
+    return {
+        "name": "store_validation_result",
+        "action": {"class_name": "StoreValidationResultAction"},
+    }
+
+
+@pytest.fixture
+def webhook() -> str:
+    return "https://hooks.slack.com/foo/bar"
+
+
+@pytest.fixture
+def slack_notification_action(webhook):
+    return {
+        "name": "send_slack_notification",
+        "action": {
+            "class_name": "SlackNotificationAction",
+            "slack_webhook": webhook,
+            "notify_on": "all",
+            "notify_with": None,
+            "renderer": {
+                "module_name": "great_expectations.render.renderer.slack_renderer",
+                "class_name": "SlackRenderer",
+            },
+        },
+    }
+
+
+@pytest.fixture
+def common_action_list(
+    store_validation_result_action: dict,
+    store_eval_parameter_action: dict,
+    update_data_docs_action: dict,
+) -> List[dict]:
+    return [
+        store_validation_result_action,
+        store_eval_parameter_action,
+        update_data_docs_action,
+    ]
+
+
+@pytest.fixture
+def batch_request_as_dict() -> Dict[str, str]:
+    return {
+        "datasource_name": "my_pandas_filesystem_datasource",
+        "data_asset_name": "users",
+    }
+
+
+@pytest.fixture
+def fluent_batch_request(batch_request_as_dict: Dict[str, str]) -> FluentBatchRequest:
+    return FluentBatchRequest(
+        datasource_name=batch_request_as_dict["datasource_name"],
+        data_asset_name=batch_request_as_dict["data_asset_name"],
+    )
+
+
 @pytest.fixture
 def titanic_pandas_data_context_stats_enabled_and_expectation_suite_with_one_expectation(
     titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
@@ -44,6 +123,12 @@ def titanic_data_context_with_fluent_pandas_datasources_stats_enabled_and_expect
         glob_directive=glob_directive,
     )
 
+    datasource_name = "my_pandas_dataframes_datasource"
+    datasource = context.get_datasource(datasource_name=datasource_name)
+
+    test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
+    datasource.add_dataframe_asset(name="my_other_dataframe_asset", dataframe=test_df)
+
     # create expectation suite
     suite = context.add_expectation_suite("my_expectation_suite")
     expectation = ExpectationConfiguration(
diff --git a/tests/checkpoint/test_checkpoint.py b/tests/checkpoint/test_checkpoint.py
--- a/tests/checkpoint/test_checkpoint.py
+++ b/tests/checkpoint/test_checkpoint.py
@@ -1373,7 +1373,7 @@ def test_newstyle_checkpoint_instantiates_and_produces_a_validation_result_when_
 @pytest.mark.integration
 def test_newstyle_checkpoint_instantiates_and_produces_a_validation_result_with_checkpoint_name_in_meta_when_run(
     titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
-    common_action_list,
+    store_validation_result_action,
 ):
     context: FileDataContext = titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled
     checkpoint_name: str = "test_checkpoint_name"
@@ -1384,12 +1384,7 @@ def test_newstyle_checkpoint_instantiates_and_produces_a_validation_result_with_
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
         action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
+            store_validation_result_action,
         ],
         validations=[
             {
diff --git a/tests/checkpoint/test_checkpoint_with_fluent_datasources.py b/tests/checkpoint/test_checkpoint_with_fluent_datasources.py
--- a/tests/checkpoint/test_checkpoint_with_fluent_datasources.py
+++ b/tests/checkpoint/test_checkpoint_with_fluent_datasources.py
@@ -4,7 +4,7 @@
 import logging
 import pickle
 import unittest
-from typing import Dict, List, Optional, TYPE_CHECKING
+from typing import List, Optional, TYPE_CHECKING
 from unittest import mock
 
 import pytest
@@ -35,7 +35,7 @@
 )
 from great_expectations.render import RenderedAtomicContent
 from great_expectations.util import (
-    filter_properties_dict,
+    deep_filter_properties_iterable,
 )
 from great_expectations.validator.validator import Validator
 
@@ -48,46 +48,6 @@
 logger = logging.getLogger(__name__)
 
 
-@pytest.fixture
-def batch_request_as_dict() -> Dict[str, str]:
-    return {
-        "datasource_name": "my_pandas_filesystem_datasource",
-        "data_asset_name": "users",
-    }
-
-
-@pytest.fixture
-def fluent_batch_request(batch_request_as_dict: Dict[str, str]) -> FluentBatchRequest:
-    return FluentBatchRequest(
-        datasource_name=batch_request_as_dict["datasource_name"],
-        data_asset_name=batch_request_as_dict["data_asset_name"],
-    )
-
-
-@pytest.fixture
-def common_action_list() -> List[dict]:
-    return [
-        {
-            "name": "store_validation_result",
-            "action": {
-                "class_name": "StoreValidationResultAction",
-            },
-        },
-        {
-            "name": "store_evaluation_params",
-            "action": {
-                "class_name": "StoreEvaluationParametersAction",
-            },
-        },
-        {
-            "name": "update_data_docs",
-            "action": {
-                "class_name": "UpdateDataDocsAction",
-            },
-        },
-    ]
-
-
 @pytest.mark.integration
 @mock.patch(
     "great_expectations.core.usage_statistics.usage_statistics.UsageStatisticsHandler.emit"
@@ -169,10 +129,10 @@ def test_checkpoint_configuration_no_nesting_using_test_yaml_config(
         yaml_config=yaml_config,
         name="my_fancy_checkpoint",
     )
-    assert filter_properties_dict(
+    assert deep_filter_properties_iterable(
         properties=checkpoint.get_config(mode=ConfigOutputModes.DICT),
         clean_falsy=True,
-    ) == filter_properties_dict(
+    ) == deep_filter_properties_iterable(
         properties=expected_checkpoint_config,
         clean_falsy=True,
     )
@@ -300,10 +260,10 @@ def test_checkpoint_configuration_nesting_provides_defaults_for_most_elements_te
         yaml_config=yaml_config,
         name="my_fancy_checkpoint",
     )
-    assert filter_properties_dict(
+    assert deep_filter_properties_iterable(
         properties=checkpoint.get_config(mode=ConfigOutputModes.DICT),
         clean_falsy=True,
-    ) == filter_properties_dict(
+    ) == deep_filter_properties_iterable(
         properties=expected_checkpoint_config,
         clean_falsy=True,
     )
@@ -426,10 +386,10 @@ def test_checkpoint_configuration_warning_error_quarantine_test_yaml_config(
         yaml_config=yaml_config,
         name="airflow_users_node_3",
     )
-    assert filter_properties_dict(
+    assert deep_filter_properties_iterable(
         properties=checkpoint.get_config(mode=ConfigOutputModes.DICT),
         clean_falsy=True,
-    ) == filter_properties_dict(
+    ) == deep_filter_properties_iterable(
         properties=expected_checkpoint_config,
         clean_falsy=True,
     )
@@ -515,10 +475,10 @@ def test_checkpoint_configuration_template_parsing_and_usage_test_yaml_config(
         yaml_config=yaml_config,
         name="my_base_checkpoint",
     )
-    assert filter_properties_dict(
+    assert deep_filter_properties_iterable(
         properties=checkpoint.get_config(mode=ConfigOutputModes.DICT),
         clean_falsy=True,
-    ) == filter_properties_dict(
+    ) == deep_filter_properties_iterable(
         properties=expected_checkpoint_config,
         clean_falsy=True,
     )
@@ -600,10 +560,10 @@ def test_checkpoint_configuration_template_parsing_and_usage_test_yaml_config(
         yaml_config=yaml_config,
         name="my_fancy_checkpoint",
     )
-    assert filter_properties_dict(
+    assert deep_filter_properties_iterable(
         properties=checkpoint.get_config(mode=ConfigOutputModes.DICT),
         clean_falsy=True,
-    ) == filter_properties_dict(
+    ) == deep_filter_properties_iterable(
         properties=expected_checkpoint_config,
         clean_falsy=True,
     )
@@ -665,7 +625,7 @@ def test_newstyle_checkpoint_instantiates_and_produces_a_validation_result_when_
 @pytest.mark.integration
 def test_newstyle_checkpoint_instantiates_and_produces_a_validation_result_with_checkpoint_name_in_meta_when_run(
     titanic_data_context_with_fluent_pandas_datasources_with_checkpoints_v1_with_empty_store_stats_enabled,
-    common_action_list,
+    store_validation_result_action,
 ):
     data_context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_with_checkpoints_v1_with_empty_store_stats_enabled
     checkpoint_name: str = "test_checkpoint_name"
@@ -676,12 +636,7 @@ def test_newstyle_checkpoint_instantiates_and_produces_a_validation_result_with_
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
         action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
+            store_validation_result_action,
         ],
         validations=[
             {
@@ -1015,7 +970,6 @@ def test_newstyle_checkpoint_result_validations_include_rendered_content_data_co
 )
 def test_checkpoint_run_adds_validation_ids_to_expectation_suite_validation_result_meta(
     titanic_data_context_with_fluent_pandas_datasources_stats_enabled_and_expectation_suite_with_one_expectation: FileDataContext,
-    common_action_list,
     checkpoint_config: CheckpointConfig,
     expected_validation_id: str,
 ) -> None:
@@ -1101,10 +1055,10 @@ def test_newstyle_checkpoint_instantiates_and_produces_a_validation_result_when_
     # create expectation suite
     context.add_expectation_suite("my_expectation_suite")
 
-    batch_request: FluentBatchRequest = FluentBatchRequest(
-        datasource_name="my_sqlite_datasource",
-        data_asset_name="table_partitioned_by_date_column__A_query_asset_limit_5",
-    )
+    batch_request = {
+        "datasource_name": "my_sqlite_datasource",
+        "data_asset_name": "table_partitioned_by_date_column__A_query_asset_limit_5",
+    }
 
     checkpoint: Checkpoint = Checkpoint(
         name="my_checkpoint",
@@ -1198,15 +1152,15 @@ def test_newstyle_checkpoint_instantiates_and_produces_a_validation_result_when_
     # create expectation suite
     context.add_expectation_suite("my_expectation_suite")
 
-    batch_request_0: FluentBatchRequest = FluentBatchRequest(
-        datasource_name="my_sqlite_datasource",
-        data_asset_name="table_partitioned_by_date_column__A_query_asset_limit_5",
-    )
+    batch_request_0 = {
+        "datasource_name": "my_sqlite_datasource",
+        "data_asset_name": "table_partitioned_by_date_column__A_query_asset_limit_5",
+    }
 
-    batch_request_1: FluentBatchRequest = FluentBatchRequest(
-        datasource_name="my_sqlite_datasource",
-        data_asset_name="table_partitioned_by_date_column__A_query_asset_limit_10",
-    )
+    batch_request_1 = {
+        "datasource_name": "my_sqlite_datasource",
+        "data_asset_name": "table_partitioned_by_date_column__A_query_asset_limit_10",
+    }
 
     checkpoint: Checkpoint = Checkpoint(
         name="my_checkpoint",
@@ -1539,10 +1493,10 @@ def test_newstyle_checkpoint_instantiates_and_produces_a_validation_result_when_
     # create expectation suite
     context.add_expectation_suite("my_expectation_suite")
 
-    batch_request: FluentBatchRequest = FluentBatchRequest(
-        datasource_name="my_sqlite_datasource",
-        data_asset_name="table_partitioned_by_date_column__A_query_asset_limit_5",
-    )
+    batch_request = {
+        "datasource_name": "my_sqlite_datasource",
+        "data_asset_name": "table_partitioned_by_date_column__A_query_asset_limit_5",
+    }
 
     # add checkpoint config
     checkpoint_config: dict = {
@@ -2316,10 +2270,10 @@ def test_newstyle_checkpoint_instantiates_and_produces_a_validation_result_when_
     # create expectation suite
     context.add_expectation_suite("my_expectation_suite")
 
-    batch_request: FluentBatchRequest = FluentBatchRequest(
-        datasource_name="my_sqlite_datasource",
-        data_asset_name="table_partitioned_by_date_column__A_query_asset_limit_5",
-    )
+    batch_request = {
+        "datasource_name": "my_sqlite_datasource",
+        "data_asset_name": "table_partitioned_by_date_column__A_query_asset_limit_5",
+    }
 
     checkpoint: Checkpoint = Checkpoint(
         name="my_checkpoint",
diff --git a/tests/checkpoint/test_simple_checkpoint.py b/tests/checkpoint/test_simple_checkpoint.py
--- a/tests/checkpoint/test_simple_checkpoint.py
+++ b/tests/checkpoint/test_simple_checkpoint.py
@@ -25,52 +25,6 @@
 from great_expectations.util import deep_filter_properties_iterable
 
 
-@pytest.fixture
-def update_data_docs_action():
-    return {
-        "name": "update_data_docs",
-        "action": {"class_name": "UpdateDataDocsAction", "site_names": []},
-    }
-
-
-@pytest.fixture
-def store_eval_parameter_action():
-    return {
-        "name": "store_evaluation_params",
-        "action": {"class_name": "StoreEvaluationParametersAction"},
-    }
-
-
-@pytest.fixture
-def store_validation_result_action():
-    return {
-        "name": "store_validation_result",
-        "action": {"class_name": "StoreValidationResultAction"},
-    }
-
-
-@pytest.fixture
-def webhook() -> str:
-    return "https://hooks.slack.com/foo/bar"
-
-
-@pytest.fixture
-def slack_notification_action(webhook):
-    return {
-        "name": "send_slack_notification",
-        "action": {
-            "class_name": "SlackNotificationAction",
-            "slack_webhook": webhook,
-            "notify_on": "all",
-            "notify_with": None,
-            "renderer": {
-                "module_name": "great_expectations.render.renderer.slack_renderer",
-                "class_name": "SlackRenderer",
-            },
-        },
-    }
-
-
 @pytest.fixture
 def context_with_data_source_and_empty_suite(
     titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
@@ -129,9 +83,7 @@ def two_validations(
 @pytest.mark.integration
 def test_simple_checkpoint_default_properties_with_no_optional_arguments(
     empty_data_context,
-    store_validation_result_action,
-    store_eval_parameter_action,
-    update_data_docs_action,
+    common_action_list,
     titanic_pandas_data_context_with_v013_datasource_stats_enabled_with_checkpoints_v1_with_templates,
 ):
     """This demonstrates the simplest possible usage."""
@@ -141,11 +93,7 @@ def test_simple_checkpoint_default_properties_with_no_optional_arguments(
     assert isinstance(checkpoint_config, CheckpointConfig)
 
     assert checkpoint_config.name == "my_minimal_simple_checkpoint"
-    assert checkpoint_config.action_list == [
-        store_validation_result_action,
-        store_eval_parameter_action,
-        update_data_docs_action,
-    ]
+    assert checkpoint_config.action_list == common_action_list
     assert checkpoint_config.config_version == 1.0
     assert checkpoint_config.class_name == "Checkpoint"
     assert checkpoint_config.evaluation_parameters == {}
@@ -157,11 +105,7 @@ def test_simple_checkpoint_default_properties_with_no_optional_arguments(
     )
     checkpoint_config = checkpoint_from_store.get_config(mode=ConfigOutputModes.DICT)
     assert checkpoint_config["name"] == "my_minimal_simple_checkpoint"
-    assert checkpoint_config["action_list"] == [
-        store_validation_result_action,
-        store_eval_parameter_action,
-        update_data_docs_action,
-    ]
+    assert checkpoint_config["action_list"] == common_action_list
     assert checkpoint_config["config_version"] == 1.0
     assert checkpoint_config["evaluation_parameters"] == {}
     assert checkpoint_config["runtime_configuration"] == {}
@@ -180,9 +124,7 @@ def test_simple_checkpoint_raises_error_on_invalid_slack_webhook(
 @pytest.mark.integration
 def test_simple_checkpoint_has_slack_action_with_defaults_when_slack_webhook_is_present(
     empty_data_context,
-    store_validation_result_action,
-    store_eval_parameter_action,
-    update_data_docs_action,
+    common_action_list,
     slack_notification_action,
     webhook,
     titanic_pandas_data_context_with_v013_datasource_stats_enabled_with_checkpoints_v1_with_templates,
@@ -190,12 +132,7 @@ def test_simple_checkpoint_has_slack_action_with_defaults_when_slack_webhook_is_
     checkpoint_config = SimpleCheckpointConfigurator(
         "foo", empty_data_context, slack_webhook=webhook
     ).build()
-    expected = [
-        store_validation_result_action,
-        store_eval_parameter_action,
-        update_data_docs_action,
-        slack_notification_action,
-    ]
+    expected = common_action_list + [slack_notification_action]
     assert checkpoint_config.action_list == expected
 
     checkpoint_from_store = titanic_pandas_data_context_with_v013_datasource_stats_enabled_with_checkpoints_v1_with_templates.get_checkpoint(
@@ -302,16 +239,10 @@ def test_simple_checkpoint_has_slack_action_with_notify_adjustments_slack_webhoo
 
 def test_simple_checkpoint_has_no_slack_action_when_no_slack_webhook_is_present(
     empty_data_context,
-    store_validation_result_action,
-    store_eval_parameter_action,
-    update_data_docs_action,
+    common_action_list,
 ):
     checkpoint_config = SimpleCheckpointConfigurator("foo", empty_data_context).build()
-    assert checkpoint_config.action_list == [
-        store_validation_result_action,
-        store_eval_parameter_action,
-        update_data_docs_action,
-    ]
+    assert checkpoint_config.action_list == common_action_list
 
 
 def test_simple_checkpoint_has_update_data_docs_action_that_should_update_all_sites_when_site_names_is_all(
@@ -398,7 +329,6 @@ def test_simple_checkpoint_has_no_update_data_docs_action_when_site_names_is_non
     empty_data_context,
     store_validation_result_action,
     store_eval_parameter_action,
-    update_data_docs_action,
 ):
     # assert the fixture is adequate
     assert "local_site" in empty_data_context.get_site_names()
@@ -413,7 +343,10 @@ def test_simple_checkpoint_has_no_update_data_docs_action_when_site_names_is_non
 
 
 def test_simple_checkpoint_persisted_to_store(
-    context_with_data_source_and_empty_suite, webhook, one_validation
+    context_with_data_source_and_empty_suite,
+    store_validation_result_action,
+    store_eval_parameter_action,
+    one_validation,
 ):
     assert context_with_data_source_and_empty_suite.list_checkpoints() == []
     initial_checkpoint_config = SimpleCheckpointConfigurator(
@@ -440,14 +373,8 @@ def test_simple_checkpoint_persisted_to_store(
     )
     assert checkpoint_config == {
         "action_list": [
-            {
-                "action": {"class_name": "StoreValidationResultAction"},
-                "name": "store_validation_result",
-            },
-            {
-                "action": {"class_name": "StoreEvaluationParametersAction"},
-                "name": "store_evaluation_params",
-            },
+            store_validation_result_action,
+            store_eval_parameter_action,
         ],
         "batch_request": {},
         "class_name": "Checkpoint",
@@ -504,7 +431,10 @@ def test_simple_checkpoint_defaults_run_and_basic_run_params_without_persisting_
 
 @pytest.mark.slow  # 1.09s
 def test_simple_checkpoint_runtime_kwargs_processing_site_names_only_without_persisting_checkpoint(
-    context_with_data_source_and_empty_suite, simple_checkpoint_defaults, one_validation
+    context_with_data_source_and_empty_suite,
+    common_action_list,
+    simple_checkpoint_defaults,
+    one_validation,
 ):
     # verify Checkpoint is not persisted in the data context
     assert context_with_data_source_and_empty_suite.list_checkpoints() == []
@@ -518,23 +448,7 @@ def test_simple_checkpoint_runtime_kwargs_processing_site_names_only_without_per
         "run_name_template": None,
         "expectation_suite_name": None,
         "batch_request": None,
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {"class_name": "StoreValidationResultAction"},
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {"class_name": "StoreEvaluationParametersAction"},
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                    "site_names": ["local_site"],
-                },
-            },
-        ],
+        "action_list": common_action_list,
         "evaluation_parameters": None,
         "runtime_configuration": {},
         "validations": [
@@ -577,7 +491,11 @@ def test_simple_checkpoint_runtime_kwargs_processing_site_names_only_without_per
 
 @pytest.mark.slow  # 1.52s
 def test_simple_checkpoint_runtime_kwargs_processing_slack_webhook_only_without_persisting_checkpoint(
-    context_with_data_source_and_empty_suite, simple_checkpoint_defaults, one_validation
+    context_with_data_source_and_empty_suite,
+    slack_notification_action,
+    common_action_list,
+    simple_checkpoint_defaults,
+    one_validation,
 ):
     # verify Checkpoint is not persisted in the data context
     assert context_with_data_source_and_empty_suite.list_checkpoints() == []
@@ -591,33 +509,7 @@ def test_simple_checkpoint_runtime_kwargs_processing_slack_webhook_only_without_
         "run_name_template": None,
         "expectation_suite_name": None,
         "batch_request": None,
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {"class_name": "StoreValidationResultAction"},
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {"class_name": "StoreEvaluationParametersAction"},
-            },
-            {
-                "name": "update_data_docs",
-                "action": {"class_name": "UpdateDataDocsAction", "site_names": []},
-            },
-            {
-                "name": "send_slack_notification",
-                "action": {
-                    "class_name": "SlackNotificationAction",
-                    "slack_webhook": "https://hooks.slack.com/my_slack_webhook.geocities",
-                    "notify_on": "all",
-                    "notify_with": None,
-                    "renderer": {
-                        "module_name": "great_expectations.render.renderer.slack_renderer",
-                        "class_name": "SlackRenderer",
-                    },
-                },
-            },
-        ],
+        "action_list": common_action_list + [slack_notification_action],
         "evaluation_parameters": None,
         "runtime_configuration": {},
         "validations": [
@@ -660,7 +552,11 @@ def test_simple_checkpoint_runtime_kwargs_processing_slack_webhook_only_without_
 
 @pytest.mark.slow  # 1.11s
 def test_simple_checkpoint_runtime_kwargs_processing_all_special_kwargs_without_persisting_checkpoint(
-    context_with_data_source_and_empty_suite, simple_checkpoint_defaults, one_validation
+    context_with_data_source_and_empty_suite,
+    slack_notification_action,
+    common_action_list,
+    simple_checkpoint_defaults,
+    one_validation,
 ):
     # verify Checkpoint is not persisted in the data context
     assert context_with_data_source_and_empty_suite.list_checkpoints() == []
@@ -674,36 +570,7 @@ def test_simple_checkpoint_runtime_kwargs_processing_all_special_kwargs_without_
         "run_name_template": None,
         "expectation_suite_name": None,
         "batch_request": None,
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {"class_name": "StoreValidationResultAction"},
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {"class_name": "StoreEvaluationParametersAction"},
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                    "site_names": ["local_site"],
-                },
-            },
-            {
-                "name": "send_slack_notification",
-                "action": {
-                    "class_name": "SlackNotificationAction",
-                    "slack_webhook": "https://hooks.slack.com/my_slack_webhook.geocities",
-                    "notify_on": "failure",
-                    "notify_with": ["local_site"],
-                    "renderer": {
-                        "module_name": "great_expectations.render.renderer.slack_renderer",
-                        "class_name": "SlackRenderer",
-                    },
-                },
-            },
-        ],
+        "action_list": common_action_list + [slack_notification_action],
         "evaluation_parameters": None,
         "runtime_configuration": {},
         "validations": [
@@ -747,11 +614,12 @@ def test_simple_checkpoint_runtime_kwargs_processing_all_special_kwargs_without_
     )
 
 
-# noinspection PyUnusedLocal
 @pytest.mark.integration
 @pytest.mark.slow  # 1.23s
 def test_simple_checkpoint_runtime_kwargs_processing_all_kwargs(
     titanic_pandas_data_context_with_v013_datasource_stats_enabled_with_checkpoints_v1_with_templates,
+    slack_notification_action,
+    common_action_list,
     simple_checkpoint_defaults,
     one_validation,
     monkeypatch,
@@ -773,36 +641,7 @@ def test_simple_checkpoint_runtime_kwargs_processing_all_kwargs(
                 "index": -1,
             },
         },
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {"class_name": "StoreValidationResultAction"},
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {"class_name": "StoreEvaluationParametersAction"},
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                    "site_names": ["local_site"],
-                },
-            },
-            {
-                "name": "send_slack_notification",
-                "action": {
-                    "class_name": "SlackNotificationAction",
-                    "slack_webhook": "https://hooks.slack.com/my_slack_webhook.geocities",
-                    "notify_on": "failure",
-                    "notify_with": ["local_site"],
-                    "renderer": {
-                        "module_name": "great_expectations.render.renderer.slack_renderer",
-                        "class_name": "SlackRenderer",
-                    },
-                },
-            },
-        ],
+        "action_list": common_action_list + [slack_notification_action],
         "evaluation_parameters": {
             "aux_param_0": "1",
             "aux_param_1": "1 + 1",
@@ -988,9 +827,7 @@ def test_simple_checkpoint_defaults_run_multiple_validations_with_persisted_chec
 @pytest.mark.integration
 def test_simple_checkpoint_with_runtime_batch_request_and_runtime_data_connector_creates_config(
     context_with_data_source_and_empty_suite,
-    store_validation_result_action,
-    store_eval_parameter_action,
-    update_data_docs_action,
+    common_action_list,
 ):
     context: FileDataContext = context_with_data_source_and_empty_suite
     runtime_batch_request = RuntimeBatchRequest(
@@ -1010,11 +847,7 @@ def test_simple_checkpoint_with_runtime_batch_request_and_runtime_data_connector
 
     assert isinstance(checkpoint_config, dict)
     assert checkpoint_config["name"] == "my_checkpoint"
-    assert checkpoint_config["action_list"] == [
-        store_validation_result_action,
-        store_eval_parameter_action,
-        update_data_docs_action,
-    ]
+    assert checkpoint_config["action_list"] == common_action_list
     assert deep_filter_properties_iterable(
         properties=checkpoint_config["batch_request"],
         clean_falsy=True,
@@ -1034,6 +867,7 @@ def test_simple_checkpoint_with_runtime_batch_request_and_runtime_data_connector
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_single_runtime_batch_request_batch_data_in_validations_pandas(
     data_context_with_datasource_pandas_engine,
+    common_action_list,
 ):
     context: FileDataContext = data_context_with_datasource_pandas_engine
     test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -1059,26 +893,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(validations=[{"batch_request": batch_request}])
@@ -1089,7 +904,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_single_runtime_batch_request_batch_data_in_validations_spark(
-    data_context_with_datasource_spark_engine, spark_session
+    data_context_with_datasource_spark_engine, common_action_list, spark_session
 ):
     context: FileDataContext = data_context_with_datasource_spark_engine
     pandas_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -1116,26 +931,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(validations=[{"batch_request": batch_request}])
@@ -1146,7 +942,8 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_single_runtime_batch_request_query_in_validations(
-    data_context_with_datasource_sqlalchemy_engine, sa
+    data_context_with_datasource_sqlalchemy_engine,
+    common_action_list,
 ):
     context: FileDataContext = data_context_with_datasource_sqlalchemy_engine
 
@@ -1173,26 +970,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
         validations=[{"batch_request": batch_request}],
     )
 
@@ -1204,7 +982,8 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_multiple_runtime_batch_request_query_in_validations(
-    data_context_with_datasource_sqlalchemy_engine, sa
+    data_context_with_datasource_sqlalchemy_engine,
+    common_action_list,
 ):
     context: FileDataContext = data_context_with_datasource_sqlalchemy_engine
 
@@ -1244,26 +1023,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
         validations=[
             {"batch_request": batch_request_1},
             {"batch_request": batch_request_2},
@@ -1278,7 +1038,8 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 
 @pytest.mark.integration
 def test_simple_checkpoint_raise_error_when_run_when_missing_batch_request_and_validations(
-    data_context_with_datasource_sqlalchemy_engine, sa
+    data_context_with_datasource_sqlalchemy_engine,
+    common_action_list,
 ):
     context: FileDataContext = data_context_with_datasource_sqlalchemy_engine
 
@@ -1292,26 +1053,7 @@ def test_simple_checkpoint_raise_error_when_run_when_missing_batch_request_and_v
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     with pytest.raises(
@@ -1323,7 +1065,9 @@ def test_simple_checkpoint_raise_error_when_run_when_missing_batch_request_and_v
 
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_query_in_top_level_batch_request(
-    data_context_with_datasource_sqlalchemy_engine, sa
+    data_context_with_datasource_sqlalchemy_engine,
+    common_action_list,
+    sa,
 ):
     context: FileDataContext = data_context_with_datasource_sqlalchemy_engine
 
@@ -1350,26 +1094,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
         batch_request=batch_request,
     )
 
@@ -1382,6 +1107,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_batch_data_in_top_level_batch_request_pandas(
     data_context_with_datasource_pandas_engine,
+    common_action_list,
 ):
     context: FileDataContext = data_context_with_datasource_pandas_engine
     test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -1407,26 +1133,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(batch_request=batch_request)
@@ -1438,6 +1145,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_batch_data_in_top_level_batch_request_spark(
     data_context_with_datasource_spark_engine,
+    common_action_list,
     spark_session,
 ):
     context: FileDataContext = data_context_with_datasource_spark_engine
@@ -1465,26 +1173,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(batch_request=batch_request)
@@ -1497,6 +1186,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.slow  # 1.08s
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_path_in_top_level_batch_request_pandas(
     titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
+    common_action_list,
 ):
     context: FileDataContext = titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled
     data_path: str = os.path.join(
@@ -1530,26 +1220,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
         batch_request=batch_request,
     )
 
@@ -1562,6 +1233,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_path_in_top_level_batch_request_spark(
     titanic_spark_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
+    common_action_list,
 ):
     context: FileDataContext = titanic_spark_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled
 
@@ -1596,26 +1268,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
         batch_request=batch_request,
     )
 
@@ -1627,7 +1280,9 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_query_in_checkpoint_run(
-    data_context_with_datasource_sqlalchemy_engine, sa
+    data_context_with_datasource_sqlalchemy_engine,
+    common_action_list,
+    sa,
 ):
     context: FileDataContext = data_context_with_datasource_sqlalchemy_engine
 
@@ -1654,26 +1309,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(batch_request=batch_request)
@@ -1685,6 +1321,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_batch_data_in_checkpoint_run_pandas(
     data_context_with_datasource_pandas_engine,
+    common_action_list,
 ):
     context: FileDataContext = data_context_with_datasource_pandas_engine
     test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -1710,26 +1347,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(batch_request=batch_request)
@@ -1740,7 +1358,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_batch_data_in_checkpoint_run_spark(
-    data_context_with_datasource_spark_engine, spark_session
+    data_context_with_datasource_spark_engine, common_action_list, spark_session
 ):
     context: FileDataContext = data_context_with_datasource_spark_engine
     pandas_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -1767,26 +1385,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(batch_request=batch_request)
@@ -1797,7 +1396,9 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_validations_query_in_checkpoint_run(
-    data_context_with_datasource_sqlalchemy_engine, sa
+    data_context_with_datasource_sqlalchemy_engine,
+    common_action_list,
+    sa,
 ):
     context: FileDataContext = data_context_with_datasource_sqlalchemy_engine
 
@@ -1824,26 +1425,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(validations=[{"batch_request": batch_request}])
@@ -1855,6 +1437,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_validations_batch_data_in_checkpoint_run_pandas(
     data_context_with_datasource_pandas_engine,
+    common_action_list,
 ):
     context: FileDataContext = data_context_with_datasource_pandas_engine
     test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -1880,26 +1463,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(validations=[{"batch_request": batch_request}])
@@ -1910,7 +1474,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_validations_batch_data_in_checkpoint_run_spark(
-    data_context_with_datasource_spark_engine, spark_session
+    data_context_with_datasource_spark_engine, common_action_list, spark_session
 ):
     context: FileDataContext = data_context_with_datasource_spark_engine
     pandas_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -1937,26 +1501,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(validations=[{"batch_request": batch_request}])
@@ -1969,6 +1514,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.slow  # 1.06s
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_path_checkpoint_run_pandas(
     titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
+    common_action_list,
 ):
     context: FileDataContext = titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled
     data_path: str = os.path.join(
@@ -2002,26 +1548,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(batch_request=batch_request)
@@ -2033,6 +1560,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_path_in_checkpoint_run_spark(
     titanic_spark_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
+    common_action_list,
 ):
     context: FileDataContext = titanic_spark_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled
 
@@ -2067,26 +1595,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(batch_request=batch_request)
@@ -2099,6 +1608,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.slow  # 1.07s
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_validations_path_checkpoint_run_pandas(
     titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
+    common_action_list,
 ):
     context: FileDataContext = titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled
     data_path: str = os.path.join(
@@ -2132,26 +1642,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(validations=[{"batch_request": batch_request}])
@@ -2163,6 +1654,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_validations_path_in_checkpoint_run_spark(
     titanic_spark_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
+    common_action_list,
 ):
     context: FileDataContext = titanic_spark_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled
 
@@ -2197,26 +1689,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(validations=[{"batch_request": batch_request}])
@@ -2227,7 +1700,9 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_query_in_context_run_checkpoint(
-    data_context_with_datasource_sqlalchemy_engine, sa
+    data_context_with_datasource_sqlalchemy_engine,
+    common_action_list,
+    sa,
 ):
     context: FileDataContext = data_context_with_datasource_sqlalchemy_engine
 
@@ -2254,26 +1729,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
     }
 
     context.add_checkpoint(**checkpoint_config_dict)
@@ -2289,6 +1745,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_batch_data_in_context_run_checkpoint_pandas(
     data_context_with_datasource_pandas_engine,
+    common_action_list,
 ):
     context: FileDataContext = data_context_with_datasource_pandas_engine
     test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -2314,26 +1771,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
     }
 
     context.add_checkpoint(**checkpoint_config)
@@ -2348,7 +1786,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_batch_data_in_context_run_checkpoint_spark(
-    data_context_with_datasource_spark_engine, spark_session
+    data_context_with_datasource_spark_engine, common_action_list, spark_session
 ):
     context: FileDataContext = data_context_with_datasource_spark_engine
     pandas_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -2375,26 +1813,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
     }
 
     context.add_checkpoint(**checkpoint_config)
@@ -2409,7 +1828,9 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_validations_query_in_context_run_checkpoint(
-    data_context_with_datasource_sqlalchemy_engine, sa
+    data_context_with_datasource_sqlalchemy_engine,
+    common_action_list,
+    sa,
 ):
     context: FileDataContext = data_context_with_datasource_sqlalchemy_engine
 
@@ -2436,26 +1857,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
     }
 
     context.add_checkpoint(**checkpoint_config)
@@ -2471,6 +1873,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_validations_batch_data_in_context_run_checkpoint_pandas(
     data_context_with_datasource_pandas_engine,
+    common_action_list,
 ):
     context: FileDataContext = data_context_with_datasource_pandas_engine
     test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -2496,26 +1899,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
     }
 
     context.add_checkpoint(**checkpoint_config)
@@ -2530,7 +1914,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_validations_batch_data_in_context_run_checkpoint_spark(
-    data_context_with_datasource_spark_engine, spark_session
+    data_context_with_datasource_spark_engine, common_action_list, spark_session
 ):
     context: FileDataContext = data_context_with_datasource_spark_engine
     pandas_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -2557,26 +1941,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
     }
 
     context.add_checkpoint(**checkpoint_config)
@@ -2593,6 +1958,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.slow  # 1.13s
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_path_context_run_checkpoint_pandas(
     titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
+    common_action_list,
 ):
     context: FileDataContext = titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled
     data_path: str = os.path.join(
@@ -2626,26 +1992,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
     }
 
     context.add_checkpoint(**checkpoint_config)
@@ -2661,6 +2008,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_batch_request_path_in_context_run_checkpoint_spark(
     titanic_spark_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
+    common_action_list,
 ):
     context: FileDataContext = titanic_spark_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled
 
@@ -2695,26 +2043,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
     }
 
     context.add_checkpoint(**checkpoint_config)
@@ -2731,6 +2060,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.slow  # 1.16s
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_validations_path_context_run_checkpoint_pandas(
     titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
+    common_action_list,
 ):
     context: FileDataContext = titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled
     data_path: str = os.path.join(
@@ -2764,26 +2094,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
     }
 
     context.add_checkpoint(**checkpoint_config)
@@ -2799,6 +2110,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_validations_path_in_context_run_checkpoint_spark(
     titanic_spark_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
+    common_action_list,
 ):
     context: FileDataContext = titanic_spark_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled
 
@@ -2833,26 +2145,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
     }
 
     context.add_checkpoint(**checkpoint_config)
@@ -2868,6 +2161,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_ru
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_printable_validation_result_with_batch_data(
     data_context_with_datasource_pandas_engine,
+    common_action_list,
 ):
     context: FileDataContext = data_context_with_datasource_pandas_engine
     test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -2893,26 +2187,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_printable_validation_resu
         config_version=1,
         run_name_template="%Y-%M-foo-bar-template",
         expectation_suite_name="my_expectation_suite",
-        action_list=[
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        action_list=common_action_list,
     )
 
     result = checkpoint.run(batch_request=batch_request)
@@ -2923,6 +2198,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_printable_validation_resu
 @pytest.mark.integration
 def test_simple_checkpoint_instantiates_and_produces_a_runtime_parameters_error_contradictory_batch_request_in_checkpoint_yml_and_checkpoint_run(
     titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
+    common_action_list,
 ):
     context: FileDataContext = titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled
     data_path: str = os.path.join(
@@ -2959,26 +2235,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_runtime_parameters_error_
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
         "batch_request": runtime_batch_request,
     }
 
@@ -3012,7 +2269,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_runtime_parameters_error_
 @pytest.mark.slow  # 1.73s
 def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result_batch_request_in_checkpoint_yml_and_checkpoint_run(
     titanic_pandas_data_context_stats_enabled_and_expectation_suite_with_one_expectation,
-    sa,
+    common_action_list,
 ):
     context: FileDataContext = titanic_pandas_data_context_stats_enabled_and_expectation_suite_with_one_expectation
     test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -3044,26 +2301,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
         "batch_request": batch_request,
     }
 
@@ -3107,7 +2345,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result
 @pytest.mark.slow  # 2.32s
 def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result_validations_in_checkpoint_yml_and_checkpoint_run(
     titanic_pandas_data_context_stats_enabled_and_expectation_suite_with_one_expectation,
-    sa,
+    common_action_list,
 ):
     context: FileDataContext = titanic_pandas_data_context_stats_enabled_and_expectation_suite_with_one_expectation
     test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -3139,26 +2377,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
         "validations": [{"batch_request": batch_request}],
     }
 
@@ -3216,7 +2435,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result
 @pytest.mark.slow  # 1.87s
 def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result_batch_request_in_checkpoint_yml_and_context_run_checkpoint(
     titanic_pandas_data_context_stats_enabled_and_expectation_suite_with_one_expectation,
-    sa,
+    common_action_list,
 ):
     context: FileDataContext = titanic_pandas_data_context_stats_enabled_and_expectation_suite_with_one_expectation
     test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -3248,26 +2467,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
         "batch_request": batch_request,
     }
 
@@ -3310,7 +2510,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result
 @pytest.mark.slow  # 2.44s
 def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result_validations_in_checkpoint_yml_and_context_run_checkpoint(
     titanic_pandas_data_context_stats_enabled_and_expectation_suite_with_one_expectation,
-    sa,
+    common_action_list,
 ):
     context: FileDataContext = titanic_pandas_data_context_stats_enabled_and_expectation_suite_with_one_expectation
     test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -3342,26 +2542,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
         "validations": [{"batch_request": batch_request}],
     }
 
@@ -3418,6 +2599,7 @@ def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result
 @pytest.mark.integration
 def test_simple_checkpoint_does_not_pass_dataframes_via_batch_request_into_checkpoint_store(
     data_context_with_datasource_pandas_engine,
+    common_action_list,
 ):
     context: FileDataContext = data_context_with_datasource_pandas_engine
     test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -3443,26 +2625,7 @@ def test_simple_checkpoint_does_not_pass_dataframes_via_batch_request_into_check
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
         "batch_request": batch_request,
     }
 
@@ -3476,6 +2639,7 @@ def test_simple_checkpoint_does_not_pass_dataframes_via_batch_request_into_check
 @pytest.mark.integration
 def test_simple_checkpoint_does_not_pass_dataframes_via_validations_into_checkpoint_store(
     data_context_with_datasource_pandas_engine,
+    common_action_list,
 ):
     context: FileDataContext = data_context_with_datasource_pandas_engine
     test_df: pd.DataFrame = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]})
@@ -3501,26 +2665,7 @@ def test_simple_checkpoint_does_not_pass_dataframes_via_validations_into_checkpo
         "config_version": 1,
         "run_name_template": "%Y-%M-foo-bar-template",
         "expectation_suite_name": "my_expectation_suite",
-        "action_list": [
-            {
-                "name": "store_validation_result",
-                "action": {
-                    "class_name": "StoreValidationResultAction",
-                },
-            },
-            {
-                "name": "store_evaluation_params",
-                "action": {
-                    "class_name": "StoreEvaluationParametersAction",
-                },
-            },
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
-        ],
+        "action_list": common_action_list,
         "validations": [{"batch_request": batch_request}],
     }
 
@@ -3535,7 +2680,6 @@ def test_simple_checkpoint_does_not_pass_dataframes_via_validations_into_checkpo
 @pytest.mark.slow  # 1.16s
 def test_simple_checkpoint_result_validations_include_rendered_content(
     titanic_pandas_data_context_stats_enabled_and_expectation_suite_with_one_expectation,
-    sa,
 ):
     context: FileDataContext = titanic_pandas_data_context_stats_enabled_and_expectation_suite_with_one_expectation
 
@@ -3609,7 +2753,9 @@ def test_running_spark_simplecheckpoint(
 
 @pytest.mark.integration
 def test_run_spark_checkpoint_with_schema(
-    context_with_single_csv_spark_and_suite, spark_df_taxi_data_schema
+    context_with_single_csv_spark_and_suite,
+    update_data_docs_action,
+    spark_df_taxi_data_schema,
 ):
     context = context_with_single_csv_spark_and_suite
     single_batch_batch_request: BatchRequest = BatchRequest(
@@ -3634,12 +2780,7 @@ def test_run_spark_checkpoint_with_schema(
             }
         ],
         "action_list": [
-            {
-                "name": "update_data_docs",
-                "action": {
-                    "class_name": "UpdateDataDocsAction",
-                },
-            },
+            update_data_docs_action,
         ],
     }
     context.add_checkpoint(**checkpoint_config)
diff --git a/tests/checkpoint/test_simple_checkpoint_with_fluent_datasources.py b/tests/checkpoint/test_simple_checkpoint_with_fluent_datasources.py
new file mode 100644
--- /dev/null
+++ b/tests/checkpoint/test_simple_checkpoint_with_fluent_datasources.py
@@ -0,0 +1,1288 @@
+import copy
+from typing import Dict, List, Union
+
+import pytest
+
+from great_expectations.datasource.fluent import BatchRequest as FluentBatchRequest
+from great_expectations.checkpoint.checkpoint import (
+    Checkpoint,
+    CheckpointResult,
+    LegacyCheckpoint,
+    SimpleCheckpoint,
+)
+from great_expectations.core import ExpectationValidationResult
+from great_expectations.core.config_peer import ConfigOutputModes
+from great_expectations.data_context import FileDataContext
+from great_expectations.data_context.types.resource_identifiers import (
+    ValidationResultIdentifier,
+)
+from great_expectations.render import RenderedAtomicContent
+from great_expectations.util import deep_filter_properties_iterable
+
+
+@pytest.fixture
+def context_with_data_source_and_empty_suite(
+    titanic_data_context_with_fluent_pandas_datasources_with_checkpoints_v1_with_empty_store_stats_enabled,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_with_checkpoints_v1_with_empty_store_stats_enabled
+    context.add_expectation_suite(expectation_suite_name="one")
+    return context
+
+
+@pytest.fixture
+def simple_checkpoint_defaults(
+    context_with_data_source_and_empty_suite,
+) -> SimpleCheckpoint:
+    return SimpleCheckpoint(
+        name="foo", data_context=context_with_data_source_and_empty_suite
+    )
+
+
+@pytest.fixture
+def one_validation(
+    batch_request_as_dict: Dict[str, str]
+) -> Dict[str, Union[str, Dict[str, str]]]:
+    return {
+        "batch_request": batch_request_as_dict,
+        "expectation_suite_name": "one",
+    }
+
+
+@pytest.fixture
+def two_validations(
+    one_validation: Dict[str, Union[str, Dict[str, str]]]
+) -> List[Dict[str, Union[str, Dict[str, str]]]]:
+    second_validation: Dict[str, Union[str, Dict[str, str]]] = copy.deepcopy(
+        one_validation
+    )
+    second_validation["expectation_suite_name"] = "two"
+    return [
+        one_validation,
+        second_validation,
+    ]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_defaults_run_and_basic_run_params_without_persisting_checkpoint(
+    simple_checkpoint_defaults, one_validation
+):
+    result = simple_checkpoint_defaults.run(
+        run_name="bar",
+        validations=[one_validation],
+    )
+    assert isinstance(result, CheckpointResult)
+    assert result.run_id.run_name == "bar"
+    assert result.list_expectation_suite_names() == ["one"]
+    assert len(result.list_validation_results()) == 1
+    assert result.success
+
+
+@pytest.mark.slow  # 1.09s
+def test_simple_checkpoint_runtime_kwargs_processing_site_names_only_without_persisting_checkpoint(
+    simple_checkpoint_defaults,
+    common_action_list,
+    batch_request_as_dict,
+    one_validation,
+):
+    expected_runtime_kwargs: dict = {
+        "name": "foo",
+        "config_version": 1.0,
+        "class_name": "Checkpoint",
+        "module_name": "great_expectations.checkpoint",
+        "template_name": None,
+        "run_name_template": None,
+        "expectation_suite_name": None,
+        "batch_request": None,
+        "action_list": common_action_list,
+        "evaluation_parameters": None,
+        "runtime_configuration": {},
+        "validations": [
+            {
+                "batch_request": batch_request_as_dict,
+                "expectation_suite_name": "one",
+            },
+        ],
+        "profilers": None,
+    }
+
+    result: CheckpointResult = simple_checkpoint_defaults.run(
+        run_name="bar",
+        validations=[one_validation],
+        site_names=["local_site"],
+    )
+    assert isinstance(result, CheckpointResult)
+    assert result.run_id.run_name == "bar"
+    assert result.list_expectation_suite_names() == ["one"]
+    assert len(result.list_validation_results()) == 1
+    assert result.success
+
+    substituted_runtime_config: dict = (
+        simple_checkpoint_defaults.get_substituted_config(
+            runtime_kwargs=expected_runtime_kwargs
+        )
+    )
+    assert deep_filter_properties_iterable(
+        properties=substituted_runtime_config,
+        clean_falsy=True,
+    ) == deep_filter_properties_iterable(
+        properties=expected_runtime_kwargs,
+        clean_falsy=True,
+    )
+
+
+@pytest.mark.integration
+@pytest.mark.slow  # 1.23s
+def test_simple_checkpoint_runtime_kwargs_processing_all_kwargs(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    simple_checkpoint_defaults,
+    one_validation,
+    batch_request_as_dict,
+    slack_notification_action,
+    common_action_list,
+    monkeypatch,
+):
+    monkeypatch.setenv("GE_ENVIRONMENT", "my_ge_environment")
+    monkeypatch.setenv("MY_PARAM", "1")
+    monkeypatch.setenv("VAR", "test")
+
+    partial_batch_request_0: dict = {
+        "datasource_name": "my_pandas_filesystem_datasource",
+    }
+
+    partial_batch_request_1: dict = {
+        "data_asset_name": "my_dataframe_asset",
+    }
+
+    partial_batch_request_2: dict = {
+        "options": {
+            "timestamp": "19120414",
+            "size": "1313",
+        },
+    }
+
+    expected_runtime_kwargs: dict = {
+        "name": "foo",
+        "config_version": 1.0,
+        "class_name": "Checkpoint",
+        "module_name": "great_expectations.checkpoint",
+        "template_name": "my_simple_template_checkpoint",
+        "run_name_template": "my_runtime_run_name_template",
+        "expectation_suite_name": "my_runtime_suite",
+        "batch_request": partial_batch_request_1,
+        "action_list": common_action_list + [slack_notification_action],
+        "evaluation_parameters": {
+            "aux_param_0": "1",
+            "aux_param_1": "1 + 1",
+            "environment": "my_ge_environment",
+            "my_runtime_key": "my_runtime_value",
+            "tolerance": 0.01,
+        },
+        "runtime_configuration": {
+            "my_runtime_key": "my_runtime_value",
+            "result_format": {
+                "result_format": "BASIC",
+                "partial_unexpected_count": 20,
+            },
+        },
+        "validations": [
+            {
+                "batch_request": partial_batch_request_0,
+                "expectation_suite_name": "one",
+            }
+        ],
+        "profilers": None,
+    }
+
+    result: CheckpointResult = simple_checkpoint_defaults.run(
+        run_name="bar",
+        template_name="my_simple_template_checkpoint",
+        run_name_template="my_runtime_run_name_template",
+        expectation_suite_name="my_runtime_suite",
+        batch_request=partial_batch_request_2,
+        validations=[one_validation],
+        evaluation_parameters={"my_runtime_key": "my_runtime_value"},
+        runtime_configuration={"my_runtime_key": "my_runtime_value"},
+        site_names=["local_site"],
+        notify_with=["local_site"],
+        notify_on="failure",
+        slack_webhook="https://hooks.slack.com/my_slack_webhook.geocities",
+    )
+    assert isinstance(result, CheckpointResult)
+    assert result.run_id.run_name == "bar"
+    assert result.list_expectation_suite_names() == ["one"]
+    assert len(result.list_validation_results()) == 1
+    assert result.success
+
+    substituted_runtime_config: dict = (
+        simple_checkpoint_defaults.get_substituted_config(
+            runtime_kwargs=expected_runtime_kwargs
+        )
+    )
+    assert deep_filter_properties_iterable(
+        properties=substituted_runtime_config,
+        clean_falsy=True,
+    ) == deep_filter_properties_iterable(
+        properties=expected_runtime_kwargs,
+        clean_falsy=True,
+    )
+
+
+@pytest.mark.slow  # 1.12s
+def test_simple_checkpoint_defaults_run_with_top_level_batch_request_and_suite(
+    simple_checkpoint_defaults,
+    fluent_batch_request,
+):
+    result = simple_checkpoint_defaults.run(
+        run_name="bar",
+        batch_request=fluent_batch_request,
+        expectation_suite_name="one",
+        validations=[{"expectation_suite_name": "one"}],
+    )
+    assert isinstance(result, CheckpointResult)
+    assert result.success
+    assert len(result.run_results) == 1
+
+
+@pytest.mark.integration
+@pytest.mark.slow  # 1.61s
+def test_simple_checkpoint_defaults_run_multiple_validations_without_persistence(
+    context_with_data_source_and_empty_suite,
+    simple_checkpoint_defaults,
+    two_validations,
+):
+    context_with_data_source_and_empty_suite.add_expectation_suite(
+        expectation_suite_name="two"
+    )
+    assert len(context_with_data_source_and_empty_suite.list_expectation_suites()) == 2
+    result = simple_checkpoint_defaults.run(
+        run_name="bar",
+        validations=two_validations,
+    )
+    assert isinstance(result, CheckpointResult)
+    assert result.run_id.run_name == "bar"
+    assert sorted(result.list_expectation_suite_names()) == sorted(["one", "two"])
+    assert len(result.list_validation_results()) == 2
+    assert result.success
+
+
+@pytest.mark.integration
+@pytest.mark.slow  # 1.62s
+def test_simple_checkpoint_defaults_run_multiple_validations_with_persisted_checkpoint_loaded_from_store(
+    context_with_data_source_and_empty_suite,
+    simple_checkpoint_defaults,
+    two_validations,
+):
+    context: FileDataContext = context_with_data_source_and_empty_suite
+    context.add_expectation_suite(expectation_suite_name="two")
+    assert len(context.list_expectation_suites()) == 2
+
+    # persist to store
+    checkpoint_class_args: dict = simple_checkpoint_defaults.get_config(
+        mode=ConfigOutputModes.JSON_DICT
+    )
+    context.add_checkpoint(**checkpoint_class_args)
+    checkpoint_name = simple_checkpoint_defaults.name
+    assert context.list_checkpoints() == [checkpoint_name]
+    # reload from store
+    del simple_checkpoint_defaults
+    checkpoint: Union[Checkpoint, LegacyCheckpoint] = context.get_checkpoint(
+        checkpoint_name
+    )
+    result = checkpoint.run(run_name="bar", validations=two_validations)
+    assert isinstance(result, CheckpointResult)
+    assert result.run_id.run_name == "bar"
+    assert sorted(result.list_expectation_suite_names()) == sorted(["one", "two"])
+    assert len(result.list_validation_results()) == 2
+    assert result.success
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_single_dataframe_batch_request_in_validations_pandasdf(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: dict = {
+        "datasource_name": "my_pandas_dataframes_datasource",
+        "data_asset_name": "my_dataframe_asset",
+    }
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+    )
+
+    result = checkpoint.run(validations=[{"batch_request": batch_request}])
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_single_dataframe_batch_request_data_in_validations_sparkdf(
+    titanic_data_context_with_fluent_pandas_and_spark_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_and_spark_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    batch_request: dict = {
+        "datasource_name": "my_spark_filesystem_datasource",
+        "data_asset_name": "users",
+    }
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+    )
+
+    result = checkpoint.run(validations=[{"batch_request": batch_request}])
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_single_batch_request_sql_asset_object_in_validations_sqlalchemy(
+    titanic_data_context_with_fluent_pandas_and_sqlite_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+    sa,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_and_sqlite_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: dict = {
+        "datasource_name": "my_sqlite_datasource",
+        "data_asset_name": "table_partitioned_by_date_column__A_query_asset_limit_5",
+    }
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+        validations=[{"batch_request": batch_request}],
+    )
+
+    result = checkpoint.run()
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_multiple_batch_request_sql_asset_objects_in_validations_sqlalchemy(
+    titanic_data_context_with_fluent_pandas_and_sqlite_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+    sa,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_and_sqlite_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request_0: dict = {
+        "datasource_name": "my_sqlite_datasource",
+        "data_asset_name": "table_partitioned_by_date_column__A_query_asset_limit_5",
+    }
+
+    batch_request_1: dict = {
+        "datasource_name": "my_sqlite_datasource",
+        "data_asset_name": "table_partitioned_by_date_column__A_query_asset_limit_10",
+    }
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+        validations=[
+            {"batch_request": batch_request_0},
+            {"batch_request": batch_request_1},
+        ],
+    )
+
+    result = checkpoint.run()
+
+    assert len(context.validations_store.list_keys()) == 2
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_dataframe_batch_request_in_top_level_batch_request_pandasdf(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_pandas_dataframes_datasource",
+        data_asset_name="my_dataframe_asset",
+    )
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+    )
+
+    result = checkpoint.run(batch_request=batch_request)
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_dataframe_batch_request_in_top_level_batch_request_sparkdf(
+    titanic_data_context_with_fluent_pandas_and_spark_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_and_spark_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_spark_dataframes_datasource",
+        data_asset_name="my_dataframe_asset",
+    )
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+    )
+
+    result = checkpoint.run(batch_request=batch_request)
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_batch_request_sql_asset_object_in_top_level_batch_request_sqlalchemy(
+    titanic_data_context_with_fluent_pandas_and_sqlite_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+    sa,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_and_sqlite_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_sqlite_datasource",
+        data_asset_name="table_partitioned_by_date_column__A_query_asset_limit_5",
+    )
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+        batch_request=batch_request,
+    )
+
+    result = checkpoint.run()
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_dataframe_batch_request_in_checkpoint_run_pandasdf(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_pandas_dataframes_datasource",
+        data_asset_name="my_dataframe_asset",
+    )
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+    )
+
+    result = checkpoint.run(batch_request=batch_request)
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_dataframe_batch_request_in_checkpoint_run_sparkdf(
+    titanic_data_context_with_fluent_pandas_and_spark_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_and_spark_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_spark_dataframes_datasource",
+        data_asset_name="my_dataframe_asset",
+    )
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+    )
+
+    result = checkpoint.run(batch_request=batch_request)
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_batch_request_sql_asset_object_in_checkpoint_run_sqlalchemy(
+    titanic_data_context_with_fluent_pandas_and_sqlite_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+    sa,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_and_sqlite_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_sqlite_datasource",
+        data_asset_name="table_partitioned_by_date_column__A_query_asset_limit_5",
+    )
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+    )
+
+    result = checkpoint.run(batch_request=batch_request)
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_dataframe_validations_in_checkpoint_run_pandasdf(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: dict = {
+        "datasource_name": "my_pandas_dataframes_datasource",
+        "data_asset_name": "my_dataframe_asset",
+    }
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+    )
+
+    result = checkpoint.run(validations=[{"batch_request": batch_request}])
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_dataframe_validations_in_checkpoint_run_sparkdf(
+    titanic_data_context_with_fluent_pandas_and_spark_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_and_spark_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: dict = {
+        "datasource_name": "my_spark_dataframes_datasource",
+        "data_asset_name": "my_dataframe_asset",
+    }
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+    )
+
+    result = checkpoint.run(validations=[{"batch_request": batch_request}])
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_runtime_validations_batch_request_sql_asset_object_in_checkpoint_run_sqlalchemy(
+    titanic_data_context_with_fluent_pandas_and_sqlite_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+    sa,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_and_sqlite_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: dict = {
+        "datasource_name": "my_sqlite_datasource",
+        "data_asset_name": "table_partitioned_by_date_column__A_query_asset_limit_5",
+    }
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+    )
+
+    result = checkpoint.run(validations=[{"batch_request": batch_request}])
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_dataframe_batch_request_in_context_run_checkpoint_pandasdf(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_pandas_dataframes_datasource",
+        data_asset_name="my_dataframe_asset",
+    )
+
+    # add checkpoint config
+    checkpoint_config: dict = {
+        "class_name": "SimpleCheckpoint",
+        "name": "my_checkpoint",
+        "config_version": 1,
+        "run_name_template": "%Y-%M-foo-bar-template",
+        "expectation_suite_name": "my_expectation_suite",
+        "action_list": common_action_list,
+    }
+
+    context.add_checkpoint(**checkpoint_config)
+
+    result = context.run_checkpoint(
+        checkpoint_name="my_checkpoint", batch_request=batch_request
+    )
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_dataframe_batch_request_in_context_run_checkpoint_sparkdf(
+    titanic_data_context_with_fluent_pandas_and_spark_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_and_spark_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_spark_dataframes_datasource",
+        data_asset_name="my_dataframe_asset",
+    )
+
+    # add checkpoint config
+    checkpoint_config: dict = {
+        "class_name": "SimpleCheckpoint",
+        "name": "my_checkpoint",
+        "config_version": 1,
+        "run_name_template": "%Y-%M-foo-bar-template",
+        "expectation_suite_name": "my_expectation_suite",
+        "action_list": common_action_list,
+    }
+
+    context.add_checkpoint(**checkpoint_config)
+
+    result = context.run_checkpoint(
+        checkpoint_name="my_checkpoint", batch_request=batch_request
+    )
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_batch_request_sql_asset_object_in_context_run_checkpoint_sqlalchemy(
+    titanic_data_context_with_fluent_pandas_and_sqlite_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+    sa,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_and_sqlite_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_sqlite_datasource",
+        data_asset_name="table_partitioned_by_date_column__A_query_asset_limit_5",
+    )
+
+    # add checkpoint config
+    checkpoint_config_dict: dict = {
+        "class_name": "SimpleCheckpoint",
+        "name": "my_checkpoint",
+        "config_version": 1,
+        "run_name_template": "%Y-%M-foo-bar-template",
+        "expectation_suite_name": "my_expectation_suite",
+        "action_list": common_action_list,
+    }
+
+    context.add_checkpoint(**checkpoint_config_dict)
+
+    result = context.run_checkpoint(
+        checkpoint_name="my_checkpoint", batch_request=batch_request
+    )
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_dataframe_validations_in_context_run_checkpoint_pandasdf(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: dict = {
+        "datasource_name": "my_pandas_dataframes_datasource",
+        "data_asset_name": "my_dataframe_asset",
+    }
+
+    # add checkpoint config
+    checkpoint_config: dict = {
+        "class_name": "SimpleCheckpoint",
+        "name": "my_checkpoint",
+        "config_version": 1,
+        "run_name_template": "%Y-%M-foo-bar-template",
+        "expectation_suite_name": "my_expectation_suite",
+        "action_list": common_action_list,
+    }
+
+    context.add_checkpoint(**checkpoint_config)
+
+    result = context.run_checkpoint(
+        checkpoint_name="my_checkpoint", validations=[{"batch_request": batch_request}]
+    )
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_dataframe_validations_in_context_run_checkpoint_sparkdf(
+    titanic_data_context_with_fluent_pandas_and_spark_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_and_spark_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: dict = {
+        "datasource_name": "my_spark_dataframes_datasource",
+        "data_asset_name": "my_dataframe_asset",
+    }
+
+    # add checkpoint config
+    checkpoint_config: dict = {
+        "class_name": "SimpleCheckpoint",
+        "name": "my_checkpoint",
+        "config_version": 1,
+        "run_name_template": "%Y-%M-foo-bar-template",
+        "expectation_suite_name": "my_expectation_suite",
+        "action_list": common_action_list,
+    }
+
+    context.add_checkpoint(**checkpoint_config)
+
+    result = context.run_checkpoint(
+        checkpoint_name="my_checkpoint", validations=[{"batch_request": batch_request}]
+    )
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_validation_result_when_run_validations_batch_request_sql_asset_object_in_context_run_checkpoint_sqlalchemy(
+    titanic_data_context_with_fluent_pandas_and_sqlite_datasources_with_checkpoints_v1_with_empty_store_stats_enabled,
+    common_action_list,
+    sa,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_and_sqlite_datasources_with_checkpoints_v1_with_empty_store_stats_enabled
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request = {
+        "datasource_name": "my_sqlite_datasource",
+        "data_asset_name": "table_partitioned_by_date_column__A_query_asset_limit_5",
+    }
+
+    # add checkpoint config
+    checkpoint_config: dict = {
+        "class_name": "SimpleCheckpoint",
+        "name": "my_checkpoint",
+        "config_version": 1,
+        "run_name_template": "%Y-%M-foo-bar-template",
+        "expectation_suite_name": "my_expectation_suite",
+        "action_list": common_action_list,
+    }
+
+    context.add_checkpoint(**checkpoint_config)
+
+    result = context.run_checkpoint(
+        checkpoint_name="my_checkpoint", validations=[{"batch_request": batch_request}]
+    )
+
+    assert len(context.validations_store.list_keys()) == 1
+    assert result["success"]
+
+
+@pytest.mark.integration
+def test_simple_checkpoint_instantiates_and_produces_a_printable_validation_result_with_dataframe_batch_request_pandasdf(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    common_action_list,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    # create expectation suite
+    context.add_expectation_suite(expectation_suite_name="my_expectation_suite")
+
+    batch_request: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_pandas_dataframes_datasource",
+        data_asset_name="my_dataframe_asset",
+    )
+
+    # add checkpoint config
+    checkpoint: SimpleCheckpoint = SimpleCheckpoint(
+        name="my_checkpoint",
+        data_context=context,
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template",
+        expectation_suite_name="my_expectation_suite",
+        action_list=common_action_list,
+    )
+
+    result = checkpoint.run(batch_request=batch_request)
+
+    assert type(repr(result)) == str
+
+
+@pytest.mark.integration
+@pytest.mark.slow  # 1.73s
+def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result_dataframe_batch_request_in_checkpoint_yml_and_checkpoint_run_pandasdf(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_and_expectation_suite_with_one_expectation,
+    common_action_list,
+    batch_request_as_dict,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_and_expectation_suite_with_one_expectation
+
+    batch_request_0: dict = {
+        "datasource_name": "my_pandas_dataframes_datasource",
+        "data_asset_name": "my_dataframe_asset",
+    }
+
+    batch_request_1: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_pandas_dataframes_datasource",
+        data_asset_name="my_other_dataframe_asset",
+    )
+
+    # add checkpoint config
+    checkpoint_config: dict = {
+        "class_name": "SimpleCheckpoint",
+        "name": "my_checkpoint",
+        "config_version": 1,
+        "run_name_template": "%Y-%M-foo-bar-template",
+        "expectation_suite_name": "my_expectation_suite",
+        "action_list": common_action_list,
+        "batch_request": batch_request_0,
+    }
+
+    context.add_checkpoint(**checkpoint_config)
+    checkpoint: Union[Checkpoint, LegacyCheckpoint] = context.get_checkpoint(
+        name="my_checkpoint"
+    )
+
+    result = checkpoint.run()
+    assert result["success"] is False
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "evaluated_expectations"
+        ]
+        == 1
+    )
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "successful_expectations"
+        ]
+        == 0
+    )
+
+    result = checkpoint.run(batch_request=batch_request_1)
+    assert result["success"]
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "evaluated_expectations"
+        ]
+        == 1
+    )
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "successful_expectations"
+        ]
+        == 1
+    )
+
+
+@pytest.mark.integration
+@pytest.mark.slow  # 2.32s
+def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result_validations_in_checkpoint_yml_and_checkpoint_run_pandasdf(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_and_expectation_suite_with_one_expectation,
+    common_action_list,
+    batch_request_as_dict,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_and_expectation_suite_with_one_expectation
+
+    batch_request_0: dict = {
+        "datasource_name": "my_pandas_dataframes_datasource",
+        "data_asset_name": "my_dataframe_asset",
+    }
+
+    batch_request_1: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_pandas_dataframes_datasource",
+        data_asset_name="my_other_dataframe_asset",
+    )
+
+    # add checkpoint config
+    checkpoint_config: dict = {
+        "class_name": "SimpleCheckpoint",
+        "name": "my_checkpoint",
+        "config_version": 1,
+        "run_name_template": "%Y-%M-foo-bar-template",
+        "expectation_suite_name": "my_expectation_suite",
+        "action_list": common_action_list,
+        "validations": [{"batch_request": batch_request_0}],
+    }
+
+    context.add_checkpoint(**checkpoint_config)
+    checkpoint: Union[Checkpoint, LegacyCheckpoint] = context.get_checkpoint(
+        name="my_checkpoint"
+    )
+
+    result = checkpoint.run()
+    assert result["success"] is False
+    assert len(result.run_results.values()) == 1
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "evaluated_expectations"
+        ]
+        == 1
+    )
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "successful_expectations"
+        ]
+        == 0
+    )
+
+    result = checkpoint.run(validations=[{"batch_request": batch_request_1}])
+    assert result["success"] is False
+    assert len(result.run_results.values()) == 2
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "evaluated_expectations"
+        ]
+        == 1
+    )
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "successful_expectations"
+        ]
+        == 0
+    )
+    assert (
+        list(result.run_results.values())[1]["validation_result"]["statistics"][
+            "evaluated_expectations"
+        ]
+        == 1
+    )
+    assert (
+        list(result.run_results.values())[1]["validation_result"]["statistics"][
+            "successful_expectations"
+        ]
+        == 1
+    )
+
+
+@pytest.mark.integration
+@pytest.mark.slow  # 1.87s
+def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result_batch_request_in_checkpoint_yml_and_context_run_checkpoint_pandasdf(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_and_expectation_suite_with_one_expectation,
+    common_action_list,
+    batch_request_as_dict,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_and_expectation_suite_with_one_expectation
+
+    batch_request_0: dict = {
+        "datasource_name": "my_pandas_dataframes_datasource",
+        "data_asset_name": "my_dataframe_asset",
+    }
+
+    batch_request_1: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_pandas_dataframes_datasource",
+        data_asset_name="my_other_dataframe_asset",
+    )
+
+    # add checkpoint config
+    checkpoint_config: dict = {
+        "class_name": "SimpleCheckpoint",
+        "name": "my_checkpoint",
+        "config_version": 1,
+        "run_name_template": "%Y-%M-foo-bar-template",
+        "expectation_suite_name": "my_expectation_suite",
+        "action_list": common_action_list,
+        "batch_request": batch_request_0,
+    }
+
+    context.add_checkpoint(**checkpoint_config)
+
+    result = context.run_checkpoint(checkpoint_name="my_checkpoint")
+    assert result["success"] is False
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "evaluated_expectations"
+        ]
+        == 1
+    )
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "successful_expectations"
+        ]
+        == 0
+    )
+
+    result = context.run_checkpoint(
+        checkpoint_name="my_checkpoint", batch_request=batch_request_1
+    )
+    assert result["success"]
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "evaluated_expectations"
+        ]
+        == 1
+    )
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "successful_expectations"
+        ]
+        == 1
+    )
+
+
+@pytest.mark.integration
+@pytest.mark.slow  # 2.44s
+def test_simple_checkpoint_instantiates_and_produces_a_correct_validation_result_validations_in_checkpoint_yml_and_context_run_checkpoint_pandasdf(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_and_expectation_suite_with_one_expectation,
+    common_action_list,
+    batch_request_as_dict,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_and_expectation_suite_with_one_expectation
+
+    batch_request_0: dict = {
+        "datasource_name": "my_pandas_dataframes_datasource",
+        "data_asset_name": "my_dataframe_asset",
+    }
+
+    batch_request_1: FluentBatchRequest = FluentBatchRequest(
+        datasource_name="my_pandas_dataframes_datasource",
+        data_asset_name="my_other_dataframe_asset",
+    )
+
+    # add checkpoint config
+    checkpoint_config: dict = {
+        "class_name": "SimpleCheckpoint",
+        "name": "my_checkpoint",
+        "config_version": 1,
+        "run_name_template": "%Y-%M-foo-bar-template",
+        "expectation_suite_name": "my_expectation_suite",
+        "action_list": common_action_list,
+        "validations": [{"batch_request": batch_request_0}],
+    }
+
+    context.add_checkpoint(**checkpoint_config)
+
+    result = context.run_checkpoint(checkpoint_name="my_checkpoint")
+    assert result["success"] is False
+    assert len(result.run_results.values()) == 1
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "evaluated_expectations"
+        ]
+        == 1
+    )
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "successful_expectations"
+        ]
+        == 0
+    )
+
+    result = context.run_checkpoint(
+        checkpoint_name="my_checkpoint",
+        validations=[{"batch_request": batch_request_1}],
+    )
+    assert result["success"] is False
+    assert len(result.run_results.values()) == 2
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "evaluated_expectations"
+        ]
+        == 1
+    )
+    assert (
+        list(result.run_results.values())[0]["validation_result"]["statistics"][
+            "successful_expectations"
+        ]
+        == 0
+    )
+    assert (
+        list(result.run_results.values())[1]["validation_result"]["statistics"][
+            "evaluated_expectations"
+        ]
+        == 1
+    )
+    assert (
+        list(result.run_results.values())[1]["validation_result"]["statistics"][
+            "successful_expectations"
+        ]
+        == 1
+    )
+
+
+@pytest.mark.integration
+@pytest.mark.slow  # 1.16s
+def test_simple_checkpoint_result_validations_include_rendered_content_pandasdf(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_and_expectation_suite_with_one_expectation,
+    common_action_list,
+    batch_request_as_dict,
+):
+    context: FileDataContext = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_and_expectation_suite_with_one_expectation
+
+    expectation_suite_name = "my_expectation_suite"
+    include_rendered_content = True
+
+    # add checkpoint config
+    checkpoint_config = {
+        "class_name": "SimpleCheckpoint",
+        "validations": [
+            {
+                "batch_request": batch_request_as_dict,
+                "expectation_suite_name": expectation_suite_name,
+                "include_rendered_content": include_rendered_content,
+            }
+        ],
+    }
+    checkpoint = SimpleCheckpoint(
+        name="my_checkpoint", data_context=context, **checkpoint_config
+    )
+
+    result: CheckpointResult = checkpoint.run()
+
+    validation_result_identifier: ValidationResultIdentifier = (
+        result.list_validation_result_identifiers()[0]
+    )
+    expectation_validation_result: ExpectationValidationResult | dict = (
+        result.run_results[validation_result_identifier]["validation_result"]
+    )
+    for result in expectation_validation_result.results:
+        for rendered_content in result.rendered_content:
+            assert isinstance(rendered_content, RenderedAtomicContent)
diff --git a/tests/conftest.py b/tests/conftest.py
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1139,88 +1139,6 @@ def titanic_v013_multi_datasource_multi_execution_engine_data_context_with_check
     return context
 
 
-@pytest.fixture
-def deterministic_asset_data_connector_context(
-    tmp_path_factory,
-    monkeypatch,
-):
-    # Re-enable GE_USAGE_STATS
-    monkeypatch.delenv("GE_USAGE_STATS")
-
-    project_path = str(tmp_path_factory.mktemp("titanic_data_context"))
-    context_path = os.path.join(project_path, "great_expectations")  # noqa: PTH118
-    os.makedirs(  # noqa: PTH103
-        os.path.join(context_path, "expectations"), exist_ok=True  # noqa: PTH118
-    )
-    data_path = os.path.join(context_path, "..", "data", "titanic")  # noqa: PTH118
-    os.makedirs(os.path.join(data_path), exist_ok=True)  # noqa: PTH118, PTH103
-    shutil.copy(
-        file_relative_path(
-            __file__,
-            str(
-                pathlib.Path(
-                    "test_fixtures",
-                    "great_expectations_v013_no_datasource_stats_enabled.yml",
-                )
-            ),
-        ),
-        str(os.path.join(context_path, "great_expectations.yml")),  # noqa: PTH118
-    )
-    shutil.copy(
-        file_relative_path(__file__, "./test_sets/Titanic.csv"),
-        str(
-            os.path.join(  # noqa: PTH118
-                context_path, "..", "data", "titanic", "Titanic_19120414_1313.csv"
-            )
-        ),
-    )
-    shutil.copy(
-        file_relative_path(__file__, "./test_sets/Titanic.csv"),
-        str(
-            os.path.join(  # noqa: PTH118
-                context_path, "..", "data", "titanic", "Titanic_1911.csv"
-            )
-        ),
-    )
-    shutil.copy(
-        file_relative_path(__file__, "./test_sets/Titanic.csv"),
-        str(
-            os.path.join(  # noqa: PTH118
-                context_path, "..", "data", "titanic", "Titanic_1912.csv"
-            )
-        ),
-    )
-    context = get_context(context_root_dir=context_path)
-    assert context.root_directory == context_path
-
-    datasource_config = f"""
-        class_name: Datasource
-
-        execution_engine:
-            class_name: PandasExecutionEngine
-
-        data_connectors:
-            my_other_data_connector:
-                class_name: ConfiguredAssetFilesystemDataConnector
-                base_directory: {data_path}
-                glob_directive: "*.csv"
-
-                default_regex:
-                    pattern: (.+)\\.csv
-                    group_names:
-                        - name
-                assets:
-                    users: {{}}
-        """
-
-    context.test_yaml_config(
-        name="my_datasource", yaml_config=datasource_config, pretty_print=False
-    )
-    # noinspection PyProtectedMember
-    context._save_project_config()
-    return context
-
-
 @pytest.fixture
 def titanic_pandas_data_context_with_v013_datasource_stats_enabled_with_checkpoints_v1_with_templates(
     titanic_pandas_data_context_with_v013_datasource_with_checkpoints_v1_with_empty_store_stats_enabled,
@@ -1500,6 +1418,89 @@ def titanic_pandas_data_context_with_v013_datasource_stats_enabled_with_checkpoi
         value=simple_checkpoint_with_site_names_config,
     )
 
+    # noinspection PyProtectedMember
+    context._save_project_config()
+
+    return context
+
+
+@pytest.fixture
+def deterministic_asset_data_connector_context(
+    tmp_path_factory,
+    monkeypatch,
+):
+    # Re-enable GE_USAGE_STATS
+    monkeypatch.delenv("GE_USAGE_STATS")
+
+    project_path = str(tmp_path_factory.mktemp("titanic_data_context"))
+    context_path = os.path.join(project_path, "great_expectations")  # noqa: PTH118
+    os.makedirs(  # noqa: PTH103
+        os.path.join(context_path, "expectations"), exist_ok=True  # noqa: PTH118
+    )
+    data_path = os.path.join(context_path, "..", "data", "titanic")  # noqa: PTH118
+    os.makedirs(os.path.join(data_path), exist_ok=True)  # noqa: PTH118, PTH103
+    shutil.copy(
+        file_relative_path(
+            __file__,
+            str(
+                pathlib.Path(
+                    "test_fixtures",
+                    "great_expectations_v013_no_datasource_stats_enabled.yml",
+                )
+            ),
+        ),
+        str(os.path.join(context_path, "great_expectations.yml")),  # noqa: PTH118
+    )
+    shutil.copy(
+        file_relative_path(__file__, "./test_sets/Titanic.csv"),
+        str(
+            os.path.join(  # noqa: PTH118
+                context_path, "..", "data", "titanic", "Titanic_19120414_1313.csv"
+            )
+        ),
+    )
+    shutil.copy(
+        file_relative_path(__file__, "./test_sets/Titanic.csv"),
+        str(
+            os.path.join(  # noqa: PTH118
+                context_path, "..", "data", "titanic", "Titanic_1911.csv"
+            )
+        ),
+    )
+    shutil.copy(
+        file_relative_path(__file__, "./test_sets/Titanic.csv"),
+        str(
+            os.path.join(  # noqa: PTH118
+                context_path, "..", "data", "titanic", "Titanic_1912.csv"
+            )
+        ),
+    )
+    context = get_context(context_root_dir=context_path)
+    assert context.root_directory == context_path
+
+    datasource_config = f"""
+        class_name: Datasource
+
+        execution_engine:
+            class_name: PandasExecutionEngine
+
+        data_connectors:
+            my_other_data_connector:
+                class_name: ConfiguredAssetFilesystemDataConnector
+                base_directory: {data_path}
+                glob_directive: "*.csv"
+
+                default_regex:
+                    pattern: (.+)\\.csv
+                    group_names:
+                        - name
+                assets:
+                    users: {{}}
+        """
+
+    context.test_yaml_config(
+        name="my_datasource", yaml_config=datasource_config, pretty_print=False
+    )
     # noinspection PyProtectedMember
     context._save_project_config()
     return context
@@ -1701,6 +1702,376 @@ def titanic_data_context_with_fluent_pandas_and_sqlite_datasources_with_checkpoi
     return context
 
 
+@pytest.fixture
+def titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates(
+    titanic_data_context_with_fluent_pandas_datasources_with_checkpoints_v1_with_empty_store_stats_enabled,
+):
+    context = titanic_data_context_with_fluent_pandas_datasources_with_checkpoints_v1_with_empty_store_stats_enabled
+
+    # add simple template config
+    simple_checkpoint_template_config = CheckpointConfig(
+        name="my_simple_template_checkpoint",
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template-$VAR",
+        action_list=[
+            {
+                "name": "store_validation_result",
+                "action": {
+                    "class_name": "StoreValidationResultAction",
+                },
+            },
+            {
+                "name": "store_evaluation_params",
+                "action": {
+                    "class_name": "StoreEvaluationParametersAction",
+                },
+            },
+            {
+                "name": "update_data_docs",
+                "action": {
+                    "class_name": "UpdateDataDocsAction",
+                },
+            },
+        ],
+        evaluation_parameters={
+            "environment": "$GE_ENVIRONMENT",
+            "tolerance": 1.0e-2,
+            "aux_param_0": "$MY_PARAM",
+            "aux_param_1": "1 + $MY_PARAM",
+        },
+        runtime_configuration={
+            "result_format": {
+                "result_format": "BASIC",
+                "partial_unexpected_count": 20,
+            }
+        },
+    )
+    simple_checkpoint_template_config_key: ConfigurationIdentifier = (
+        ConfigurationIdentifier(
+            configuration_key=simple_checkpoint_template_config.name
+        )
+    )
+    context.checkpoint_store.set(
+        key=simple_checkpoint_template_config_key,
+        value=simple_checkpoint_template_config,
+    )
+
+    # add nested template configs
+    nested_checkpoint_template_config_1 = CheckpointConfig(
+        name="my_nested_checkpoint_template_1",
+        config_version=1,
+        run_name_template="%Y-%M-foo-bar-template-$VAR",
+        expectation_suite_name="suite_from_template_1",
+        action_list=[
+            {
+                "name": "store_validation_result",
+                "action": {
+                    "class_name": "StoreValidationResultAction",
+                },
+            },
+            {
+                "name": "store_evaluation_params",
+                "action": {
+                    "class_name": "StoreEvaluationParametersAction",
+                },
+            },
+            {
+                "name": "update_data_docs",
+                "action": {
+                    "class_name": "UpdateDataDocsAction",
+                },
+            },
+        ],
+        evaluation_parameters={
+            "environment": "FOO",
+            "tolerance": "FOOBOO",
+            "aux_param_0": "FOOBARBOO",
+            "aux_param_1": "FOOBARBOO",
+            "template_1_key": 456,
+        },
+        runtime_configuration={
+            "result_format": "FOOBARBOO",
+            "partial_unexpected_count": "FOOBARBOO",
+            "template_1_key": 123,
+        },
+        validations=[
+            {
+                "batch_request": {
+                    "datasource_name": "my_datasource_template_1",
+                    "data_connector_name": "my_special_data_connector_template_1",
+                    "data_asset_name": "users_from_template_1",
+                    "data_connector_query": {"partition_index": -999},
+                }
+            }
+        ],
+    )
+    nested_checkpoint_template_config_1_key: ConfigurationIdentifier = (
+        ConfigurationIdentifier(
+            configuration_key=nested_checkpoint_template_config_1.name
+        )
+    )
+    context.checkpoint_store.set(
+        key=nested_checkpoint_template_config_1_key,
+        value=nested_checkpoint_template_config_1,
+    )
+
+    nested_checkpoint_template_config_2 = CheckpointConfig(
+        name="my_nested_checkpoint_template_2",
+        config_version=1,
+        template_name="my_nested_checkpoint_template_1",
+        run_name_template="%Y-%M-foo-bar-template-$VAR-template-2",
+        action_list=[
+            {
+                "name": "store_validation_result",
+                "action": {
+                    "class_name": "StoreValidationResultAction",
+                },
+            },
+            {
+                "name": "store_evaluation_params",
+                "action": {
+                    "class_name": "MyCustomStoreEvaluationParametersActionTemplate2",
+                },
+            },
+            {
+                "name": "update_data_docs",
+                "action": {
+                    "class_name": "UpdateDataDocsAction",
+                },
+            },
+            {
+                "name": "new_action_from_template_2",
+                "action": {"class_name": "Template2SpecialAction"},
+            },
+        ],
+        evaluation_parameters={
+            "environment": "$GE_ENVIRONMENT",
+            "tolerance": 1.0e-2,
+            "aux_param_0": "$MY_PARAM",
+            "aux_param_1": "1 + $MY_PARAM",
+        },
+        runtime_configuration={
+            "result_format": "BASIC",
+            "partial_unexpected_count": 20,
+        },
+    )
+    nested_checkpoint_template_config_2_key: ConfigurationIdentifier = (
+        ConfigurationIdentifier(
+            configuration_key=nested_checkpoint_template_config_2.name
+        )
+    )
+    context.checkpoint_store.set(
+        key=nested_checkpoint_template_config_2_key,
+        value=nested_checkpoint_template_config_2,
+    )
+
+    nested_checkpoint_template_config_3 = CheckpointConfig(
+        name="my_nested_checkpoint_template_3",
+        config_version=1,
+        template_name="my_nested_checkpoint_template_2",
+        run_name_template="%Y-%M-foo-bar-template-$VAR-template-3",
+        action_list=[
+            {
+                "name": "store_validation_result",
+                "action": {
+                    "class_name": "StoreValidationResultAction",
+                },
+            },
+            {
+                "name": "store_evaluation_params",
+                "action": {
+                    "class_name": "MyCustomStoreEvaluationParametersActionTemplate3",
+                },
+            },
+            {
+                "name": "update_data_docs",
+                "action": {
+                    "class_name": "UpdateDataDocsAction",
+                },
+            },
+            {
+                "name": "new_action_from_template_3",
+                "action": {"class_name": "Template3SpecialAction"},
+            },
+        ],
+        evaluation_parameters={
+            "environment": "$GE_ENVIRONMENT",
+            "tolerance": 1.0e-2,
+            "aux_param_0": "$MY_PARAM",
+            "aux_param_1": "1 + $MY_PARAM",
+            "template_3_key": 123,
+        },
+        runtime_configuration={
+            "result_format": "BASIC",
+            "partial_unexpected_count": 20,
+            "template_3_key": "bloopy!",
+        },
+    )
+    nested_checkpoint_template_config_3_key: ConfigurationIdentifier = (
+        ConfigurationIdentifier(
+            configuration_key=nested_checkpoint_template_config_3.name
+        )
+    )
+    context.checkpoint_store.set(
+        key=nested_checkpoint_template_config_3_key,
+        value=nested_checkpoint_template_config_3,
+    )
+
+    # add minimal SimpleCheckpoint
+    simple_checkpoint_config = CheckpointConfig(
+        name="my_minimal_simple_checkpoint",
+        class_name="SimpleCheckpoint",
+        config_version=1,
+    )
+    simple_checkpoint_config_key = ConfigurationIdentifier(
+        configuration_key=simple_checkpoint_config.name
+    )
+    context.checkpoint_store.set(
+        key=simple_checkpoint_config_key,
+        value=simple_checkpoint_config,
+    )
+
+    # add SimpleCheckpoint with slack webhook
+    simple_checkpoint_with_slack_webhook_config = CheckpointConfig(
+        name="my_simple_checkpoint_with_slack",
+        class_name="SimpleCheckpoint",
+        config_version=1,
+        slack_webhook="https://hooks.slack.com/foo/bar",
+    )
+    simple_checkpoint_with_slack_webhook_config_key: ConfigurationIdentifier = (
+        ConfigurationIdentifier(
+            configuration_key=simple_checkpoint_with_slack_webhook_config.name
+        )
+    )
+    context.checkpoint_store.set(
+        key=simple_checkpoint_with_slack_webhook_config_key,
+        value=simple_checkpoint_with_slack_webhook_config,
+    )
+
+    # add SimpleCheckpoint with slack webhook and notify_with
+    simple_checkpoint_with_slack_webhook_and_notify_with_all_config = CheckpointConfig(
+        name="my_simple_checkpoint_with_slack_and_notify_with_all",
+        class_name="SimpleCheckpoint",
+        config_version=1,
+        slack_webhook="https://hooks.slack.com/foo/bar",
+        notify_with="all",
+    )
+    simple_checkpoint_with_slack_webhook_and_notify_with_all_config_key = ConfigurationIdentifier(
+        configuration_key=simple_checkpoint_with_slack_webhook_and_notify_with_all_config.name
+    )
+    context.checkpoint_store.set(
+        key=simple_checkpoint_with_slack_webhook_and_notify_with_all_config_key,
+        value=simple_checkpoint_with_slack_webhook_and_notify_with_all_config,
+    )
+
+    # add SimpleCheckpoint with site_names
+    simple_checkpoint_with_site_names_config = CheckpointConfig(
+        name="my_simple_checkpoint_with_site_names",
+        class_name="SimpleCheckpoint",
+        config_version=1,
+        site_names=["local_site"],
+    )
+    simple_checkpoint_with_site_names_config_key: ConfigurationIdentifier = (
+        ConfigurationIdentifier(
+            configuration_key=simple_checkpoint_with_site_names_config.name
+        )
+    )
+    context.checkpoint_store.set(
+        key=simple_checkpoint_with_site_names_config_key,
+        value=simple_checkpoint_with_site_names_config,
+    )
+
+    # noinspection PyProtectedMember
+    context._save_project_config()
+
+    return context
+
+
+@pytest.fixture
+def titanic_data_context_with_fluent_pandas_and_spark_datasources_stats_enabled_with_checkpoints_v1_with_templates(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    spark_df_from_pandas_df,
+    spark_session,
+):
+    context = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates
+    context_path: str = context.root_directory
+    path_to_folder_containing_csv_files = pathlib.Path(
+        context_path,
+        "..",
+        "data",
+        "titanic",
+    )
+
+    datasource_name = "my_spark_filesystem_datasource"
+    datasource = context.sources.add_spark_filesystem(
+        name=datasource_name, base_directory=path_to_folder_containing_csv_files
+    )
+
+    batching_regex = r"(?P<name>.+)\.csv"
+    glob_directive = "*.csv"
+    datasource.add_csv_asset(
+        name="exploration", batching_regex=batching_regex, glob_directive=glob_directive
+    )
+
+    batching_regex = r"(.+)_(?P<timestamp>\d{8})_(?P<size>\d{4})\.csv"
+    glob_directive = "*.csv"
+    datasource.add_csv_asset(
+        name="users", batching_regex=batching_regex, glob_directive=glob_directive
+    )
+
+    datasource_name = "my_spark_dataframes_datasource"
+    datasource = context.sources.add_spark(name=datasource_name)
+
+    csv_source_path = pathlib.Path(
+        context_path,
+        "..",
+        "data",
+        "titanic",
+        "Titanic_1911.csv",
+    )
+    pandas_df = pd.read_csv(filepath_or_buffer=csv_source_path)
+    spark_df = spark_df_from_pandas_df(spark_session, pandas_df)
+
+    dataframe_asset_name = "my_dataframe_asset"
+    datasource.add_dataframe_asset(name=dataframe_asset_name, dataframe=spark_df)
+
+    # noinspection PyProtectedMember
+    context._save_project_config()
+
+    return context
+
+
+@pytest.fixture
+def titanic_data_context_with_fluent_pandas_and_sqlite_datasources_stats_enabled_with_checkpoints_v1_with_templates(
+    titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates,
+    db_file,
+    sa,
+):
+    context = titanic_data_context_with_fluent_pandas_datasources_stats_enabled_with_checkpoints_v1_with_templates
+
+    datasource_name = "my_sqlite_datasource"
+    connection_string = f"sqlite:///{db_file}"
+    datasource = context.sources.add_sqlite(
+        name=datasource_name,
+        connection_string=connection_string,
+    )
+
+    query = "SELECT * from table_partitioned_by_date_column__A LIMIT 5"
+    datasource.add_query_asset(
+        name="table_partitioned_by_date_column__A_query_asset_limit_5", query=query
+    )
+
+    query = "SELECT * from table_partitioned_by_date_column__A LIMIT 10"
+    datasource.add_query_asset(
+        name="table_partitioned_by_date_column__A_query_asset_limit_10", query=query
+    )
+
+    # noinspection PyProtectedMember
+    context._save_project_config()
+
+    return context
+
+
 @pytest.fixture
 def empty_context_with_checkpoint(empty_data_context):
     context = empty_data_context