How to use the spectacles.runner.Runner function in spectacles

To help you get started, we’ve selected a few spectacles examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github spectacles-ci / spectacles / tests / test_runner.py View on Github external
def test_incremental_same_results_should_not_have_errors():
    main = build_validation("content")
    additional = build_validation("content")
    incremental = Runner._incremental_results(main, additional)
    assert incremental["status"] == "passed"
    assert incremental["errors"] == []
    assert incremental["tested"] == [
        dict(model="ecommerce", explore="orders", passed=True),
        dict(model="ecommerce", explore="sessions", passed=True),
        dict(model="ecommerce", explore="users", passed=True),
    ]
github spectacles-ci / spectacles / tests / test_runner.py View on Github external
model="ecommerce",
            explore="users",
            test=None,
            message="Another error occurred",
            metadata={},
        ),
        dict(
            model="ecommerce",
            explore="sessions",
            test=None,
            message="An error occurred",
            metadata={},
        ),
    ]
    additional["errors"].extend(extra_errors)
    incremental = Runner._incremental_results(main, additional)
    assert incremental["status"] == "failed"
    assert incremental["errors"] == extra_errors
    assert incremental["tested"] == [
        dict(model="ecommerce", explore="orders", passed=True),
        dict(model="ecommerce", explore="sessions", passed=False),
        dict(model="ecommerce", explore="users", passed=False),
    ]
github spectacles-ci / spectacles / spectacles / cli.py View on Github external
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)
github spectacles-ci / spectacles / spectacles / cli.py View on Github external
project,
    branch,
    explores,
    excludes,
    base_url,
    client_id,
    client_secret,
    port,
    api_version,
    remote_reset,
    import_projects,
    commit_ref,
    incremental,
    exclude_personal,
) -> None:
    runner = Runner(
        base_url,
        project,
        branch,
        client_id,
        client_secret,
        port,
        api_version,
        remote_reset,
        import_projects,
        commit_ref,
    )
    results = runner.validate_content(explores, excludes, incremental, exclude_personal)

    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)
github spectacles-ci / spectacles / spectacles / cli.py View on Github external
branch,
    explores,
    exclude,
    base_url,
    client_id,
    client_secret,
    port,
    api_version,
    mode,
    remote_reset,
    import_projects,
    concurrency,
    commit_ref,
) -> None:
    """Runs and validates the SQL for each selected LookML dimension."""
    runner = Runner(
        base_url,
        project,
        branch,
        client_id,
        client_secret,
        port,
        api_version,
        remote_reset,
        import_projects,
        commit_ref,
    )

    def iter_errors(lookml: List) -> Iterable:
        for item in lookml:
            if item.errored:
                yield item