예제 #1
0
def test_simple_checkpoint_defaults_run_and_basic_run_params_with_persisted_checkpoint_loaded_from_store(
    context_with_data_source_and_empty_suite,
    simple_checkpoint_defaults,
    webhook,
    one_validation,
):
    context: DataContext = context_with_data_source_and_empty_suite
    checkpoint_config = SimpleCheckpointConfigurator(
        "foo", context_with_data_source_and_empty_suite,
        slack_webhook=webhook).build()
    context.add_checkpoint(**checkpoint_config.to_json_dict())
    checkpoint_name = checkpoint_config.name
    assert context.list_checkpoints() == [checkpoint_name]

    del checkpoint_config
    checkpoint = context.get_checkpoint(checkpoint_name)
    assert isinstance(checkpoint, Checkpoint)

    result = checkpoint.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
예제 #2
0
def test_simple_checkpoint_persisted_to_store(
        context_with_data_source_and_empty_suite, webhook, one_validation):
    assert context_with_data_source_and_empty_suite.list_checkpoints() == []
    initial_checkpoint_config = SimpleCheckpointConfigurator(
        "foo",
        context_with_data_source_and_empty_suite,
        site_names=None,
    ).build()
    # TODO this add_checkpoint will be user facing and it could be more
    #  ergonomic by accepting a Checkpoint maybe .add_checkpoint() should take a
    #  Checkpoint and there should be a .create_checkpoint() that accepts all
    #  the current parameters
    context_with_data_source_and_empty_suite.add_checkpoint(
        **initial_checkpoint_config.to_json_dict())
    assert context_with_data_source_and_empty_suite.list_checkpoints() == [
        "foo"
    ]
    checkpoint = context_with_data_source_and_empty_suite.get_checkpoint("foo")
    assert isinstance(checkpoint, Checkpoint)
    assert isinstance(checkpoint.config, CheckpointConfig)
    assert checkpoint.config.to_json_dict() == {
        "action_list": [
            {
                "action": {
                    "class_name": "StoreValidationResultAction"
                },
                "name": "store_validation_result",
            },
            {
                "action": {
                    "class_name": "StoreEvaluationParametersAction"
                },
                "name": "store_evaluation_params",
            },
        ],
        "batch_request":
        None,
        "class_name":
        "Checkpoint",
        "config_version":
        1.0,
        "evaluation_parameters": {},
        "expectation_suite_name":
        None,
        "ge_cloud_id":
        None,
        "module_name":
        "great_expectations.checkpoint",
        "name":
        "foo",
        "profilers": [],
        "run_name_template":
        None,
        "runtime_configuration": {},
        "template_name":
        None,
        "validations": [],
    }
    results = checkpoint.run(validations=[one_validation])
    assert results.success