def run_assert(project, branch, base_url, client_id, client_secret, port, api_version) -> None: runner = Runner(base_url, project, branch, client_id, client_secret, port, api_version) errors = runner.validate_data_tests() if errors: for error in sorted(errors, key=lambda x: x["path"]): printer.print_data_test_error(error) logger.info("") raise ValidationError else: logger.info("")
def run_assert( project, branch, explores, exclude, base_url, client_id, client_secret, port, api_version, remote_reset, import_projects, commit_ref, ) -> None: runner = Runner( base_url, project, branch, client_id, client_secret, port, api_version, remote_reset, import_projects, commit_ref, ) results = runner.validate_data_tests(explores, exclude) for test in sorted(results["tested"], key=lambda x: (x["model"], x["explore"])): message = f"{test['model']}.{test['explore']}" printer.print_validation_result(passed=test["passed"], source=message) errors = sorted( results["errors"], key=lambda x: (x["model"], x["explore"], x["metadata"]["test_name"]), ) if errors: for error in errors: printer.print_data_test_error( error["model"], error["explore"], error["metadata"]["test_name"], error["message"], error["metadata"]["lookml_url"], ) logger.info("") raise GenericValidationError else: logger.info("")
def test_data_test_error_prints_with_relevant_info(sql_error, caplog): model = "model_a" explore = "explore_a" test_name = "assert_metric_is_positive" message = "A super important error occurred." lookml_url = "https://spectacles.looker.com" printer.print_data_test_error( model=model, explore=explore, test_name=test_name, message=message, lookml_url=lookml_url, ) assert model in caplog.text assert explore in caplog.text assert test_name in caplog.text assert message in caplog.text assert lookml_url in caplog.text