Detailed Results

All Test Results

Connect

2 tests — 1 passed, 1 failed

PASSAPI key authentication works
tests/connect/test_auth.py::test_connect_login_api · 0.27s
Test procedure
  • Given Connect is accessible at the configured URL
  • And a valid API key is configured
  • When I request the current user via the API
  • Then the API returns user information
FAILConnect system checks can be run and the report downloaded
tests/connect/test_system_checks.py::test_connect_system_checks · 0.26s
Test procedure
  • Given Connect is accessible at the configured URL
  • And a valid API key is configured
  • When I trigger a new system check run via the Connect API
  • Then the system check report is returned
  • And I can download the system check report artifact
Error traceback
fixturefunc = <function trigger_system_check at 0x7f01c4a0cea0>
request = <FixtureRequest for <Function test_connect_system_checks>>
kwargs = {'connect_client': <vip.clients.connect.ConnectClient object at 0x7f01c4a6bb60>}

    def call_fixture_func(
        fixturefunc: _FixtureFunc[FixtureValue], request: FixtureRequest, kwargs
    ) -> FixtureValue:
        if inspect.isgeneratorfunction(fixturefunc):
            fixturefunc = cast(Callable[..., Generator[FixtureValue]], fixturefunc)
            generator = fixturefunc(**kwargs)
            try:
                fixture_result = next(generator)
            except StopIteration:
                raise ValueError(f"{request.fixturename} did not yield a value") from None
            finalizer = functools.partial(_teardown_yield_fixture, fixturefunc, generator)
            request.addfinalizer(finalizer)
        else:
            fixturefunc = cast(Callable[..., FixtureValue], fixturefunc)
>           fixture_result = fixturefunc(**kwargs)
                             ^^^^^^^^^^^^^^^^^^^^^

.venv/lib/python3.13/site-packages/_pytest/fixtures.py:915: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/connect/test_system_checks.py:32: in trigger_system_check
    return connect_client.run_server_check()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/vip/clients/connect.py:251: in run_server_check
    resp.raise_for_status()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [404 Not Found]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Client error '404 Not Found' for url 'http://localhost:3939/__api__/v1/server_checks'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404

.venv/lib/python3.13/site-packages/httpx/_models.py:829: HTTPStatusError

Package Manager

4 tests — 2 passed, 2 skipped

PASSCRAN mirror is accessible
tests/package_manager/test_repos.py::test_cran_mirror · 0.57s
Test procedure
  • Given Package Manager is running
  • When I query the CRAN repository for the "Matrix" package
  • Then the package is found in the repository
SKIPPyPI mirror is accessible
tests/package_manager/test_repos.py::test_pypi_mirror · 0.02s
Test procedure
  • Given Package Manager is running
  • When I query the PyPI repository for the "requests" package
  • Then the package is found in the repository
SKIPBioconductor mirror is accessible
tests/package_manager/test_repos.py::test_bioconductor_mirror · 0.02s
Test procedure
  • Given Package Manager is running
  • When I query the Bioconductor repository for the "BiocGenerics" package
  • Then the package is found in the repository
PASSAt least one repository is configured
tests/package_manager/test_repos.py::test_repo_exists · 0.02s
Test procedure
  • Given Package Manager is running
  • When I list all repositories
  • Then at least one repository exists

Prerequisites

4 tests — 2 passed, 1 failed, 1 skipped

PASS<product> server is reachable
tests/prerequisites/test_components.py::test_product_server_is_reachable[Connect] · 0.08s
Test procedure
  • Given <product> is configured in vip.toml
  • When I request the <product> health endpoint
  • Then the server responds with a successful status code
SKIP<product> server is reachable
tests/prerequisites/test_components.py::test_product_server_is_reachable[Workbench] · 0.00s
Test procedure
  • Given <product> is configured in vip.toml
  • When I request the <product> health endpoint
  • Then the server responds with a successful status code
PASS<product> server is reachable
tests/prerequisites/test_components.py::test_product_server_is_reachable[Package Manager] · 0.02s
Test procedure
  • Given <product> is configured in vip.toml
  • When I request the <product> health endpoint
  • Then the server responds with a successful status code
FAILWorkbench server is reachable but not configured
tests/prerequisites/test_expected_failure.py::test_workbench_expected_failure · 0.00s
Test procedure
  • Given Workbench is expected to be configured
  • When I check the Workbench configuration
  • Then Workbench should be reachable
Error traceback
fixturefunc = <function workbench_reachable at 0x7f01c4ac76a0>
request = <FixtureRequest for <Function test_workbench_expected_failure>>
kwargs = {'wb_configured': False}

    def call_fixture_func(
        fixturefunc: _FixtureFunc[FixtureValue], request: FixtureRequest, kwargs
    ) -> FixtureValue:
        if inspect.isgeneratorfunction(fixturefunc):
            fixturefunc = cast(Callable[..., Generator[FixtureValue]], fixturefunc)
            generator = fixturefunc(**kwargs)
            try:
                fixture_result = next(generator)
            except StopIteration:
                raise ValueError(f"{request.fixturename} did not yield a value") from None
            finalizer = functools.partial(_teardown_yield_fixture, fixturefunc, generator)
            request.addfinalizer(finalizer)
        else:
            fixturefunc = cast(Callable[..., FixtureValue], fixturefunc)
>           fixture_result = fixturefunc(**kwargs)
                             ^^^^^^^^^^^^^^^^^^^^^

.venv/lib/python3.13/site-packages/_pytest/fixtures.py:915: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

wb_configured = False

    @then("Workbench should be reachable")
    def workbench_reachable(wb_configured):
>       assert wb_configured, (
            "Workbench is not configured. "
            "This is an expected failure used to demonstrate report rendering. "
            "Set [workbench] url in vip.toml to resolve."
        )
E       AssertionError: Workbench is not configured. This is an expected failure used to demonstrate report rendering. Set [workbench] url in vip.toml to resolve.
E       assert False

tests/prerequisites/test_expected_failure.py:42: AssertionError
Likely causes:
  • Workbench is not configured in vip.toml (expected in CI preview)
  • This test intentionally fails to demonstrate report failure rendering
Suggested next steps:
  1. No action needed — this failure is expected in the CI report preview
  2. To resolve, add a [workbench] section with a valid URL to vip.toml

Documentation: https://github.com/posit-dev/vip/issues/73