def test_expectation__get_execution_engine_dict( test_cases_for_sql_data_connector_sqlite_execution_engine, ): expectation_name = "expect_column_values_to_equal_three___second_iteration" my_expectation = _registered_expectations[expectation_name]() examples = my_expectation._get_examples() example_data, example_test = my_expectation._choose_example(examples) my_batch = Batch(data=example_data) my_expectation_config = ExpectationConfiguration(**{ "expectation_type": expectation_name, "kwargs": example_test }) my_validation_results = my_expectation._instantiate_example_validation_results( test_batch=my_batch, expectation_config=my_expectation_config, ) upstream_metrics = my_expectation._get_upstream_metrics( expectation_config=my_expectation_config) execution_engines = my_expectation._get_execution_engine_dict( upstream_metrics=upstream_metrics, ) assert execution_engines == { "PandasExecutionEngine": True, "SparkDFExecutionEngine": False, "SqlAlchemyExecutionEngine": False, }
def test_expectation__get_renderers(): expectation_name = "expect_column_values_to_match_regex" my_expectation = _registered_expectations[expectation_name]() supported_renderers = my_expectation._get_supported_renderers( expectation_name) examples = my_expectation._get_examples() example_data, example_test = my_expectation._choose_example(examples) my_batch = Batch(data=example_data) my_expectation_config = ExpectationConfiguration(**{ "expectation_type": expectation_name, "kwargs": example_test }) my_validation_results = my_expectation._instantiate_example_validation_results( test_batch=my_batch, expectation_config=my_expectation_config, ) my_validation_result = my_validation_results[0] renderer_dict = my_expectation._get_renderer_dict( expectation_name, my_expectation_config, my_validation_result, ) print(json.dumps(renderer_dict, indent=2)) assert renderer_dict == { "standard": { "renderer.answer": 'Less than 90.0% of values in column "a" match the regular expression ^a.', "renderer.diagnostic.unexpected_statement": "\n\n1 unexpected values found. 20% of 5 total rows.", "renderer.diagnostic.observed_value": "20% unexpected", "renderer.diagnostic.status_icon": "", "renderer.diagnostic.unexpected_table": None, "renderer.prescriptive": "a values must match this regular expression: ^a, at least 90 % of the time.", "renderer.question": 'Do at least 90.0% of values in column "a" match the regular expression ^a?', }, "custom": [], } # Expectation with no new renderers specified print([x for x in _registered_expectations.keys() if "second" in x]) expectation_name = "expect_column_values_to_equal_three___second_iteration" my_expectation = _registered_expectations[expectation_name]() supported_renderers = my_expectation._get_supported_renderers( expectation_name) examples = my_expectation._get_examples() example_data, example_test = my_expectation._choose_example(examples) my_batch = Batch(data=example_data) my_expectation_config = ExpectationConfiguration(**{ "expectation_type": expectation_name, "kwargs": example_test }) my_validation_results = my_expectation._instantiate_example_validation_results( test_batch=my_batch, expectation_config=my_expectation_config, ) my_validation_result = my_validation_results[0] renderer_dict = my_expectation._get_renderer_dict( expectation_name, my_expectation_config, my_validation_result, ) print(json.dumps(renderer_dict, indent=2)) assert renderer_dict == { "standard": { "renderer.answer": None, "renderer.diagnostic.observed_value": "20% unexpected", "renderer.diagnostic.status_icon": "", "renderer.diagnostic.unexpected_statement": "", "renderer.diagnostic.unexpected_table": None, "renderer.prescriptive": "expect_column_values_to_equal_three___second_iteration(**{'column': 'mostly_threes', 'mostly': 0.6})", "renderer.question": None, }, "custom": [], } # Expectation with no renderers specified print([x for x in _registered_expectations.keys() if "second" in x]) expectation_name = "expect_column_values_to_equal_three___third_iteration" my_expectation = _registered_expectations[expectation_name]() supported_renderers = my_expectation._get_supported_renderers( expectation_name) examples = my_expectation._get_examples() example_data, example_test = my_expectation._choose_example(examples) my_batch = Batch(data=example_data) my_expectation_config = ExpectationConfiguration(**{ "expectation_type": expectation_name, "kwargs": example_test }) my_validation_results = my_expectation._instantiate_example_validation_results( test_batch=my_batch, expectation_config=my_expectation_config, ) my_validation_result = my_validation_results[0] renderer_dict = my_expectation._get_renderer_dict( expectation_name, my_expectation_config, my_validation_result, ) print(json.dumps(renderer_dict, indent=2)) assert renderer_dict == { "standard": { "renderer.answer": 'At least 60.0% of values in column "mostly_threes" equal 3.', "renderer.diagnostic.observed_value": "20% unexpected", "renderer.diagnostic.status_icon": "", "renderer.diagnostic.unexpected_statement": "", "renderer.diagnostic.unexpected_table": None, "renderer.prescriptive": "mostly_threes values must be equal to 3, at least 60 % of the time.", "renderer.question": 'Do at least 60.0% of values in column "mostly_threes" equal 3?', }, "custom": [], }