summaryrefslogtreecommitdiffstats
path: root/test/test_runtime_example.py
blob: 17be48393f9c8fff923a741b75b214d28b37edc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
"""Sample use of Runtime class."""

from ansible_compat.runtime import Runtime


def test_runtime_example() -> None:
    """Test basic functionality of Runtime class."""
    # instantiate the runtime using isolated mode, so installing new
    # roles/collections do not pollute the default setup.
    runtime = Runtime(isolated=True, max_retries=3)

    # Print Ansible core version
    _ = runtime.version  # 2.9.10 (Version object)
    # Get configuration info from runtime
    _ = runtime.config.collections_path

    # Detect if current project is a collection and install its requirements
    runtime.prepare_environment(install_local=True)  # will retry 3 times if needed

    # Install a new collection (will retry 3 times if needed)
    runtime.install_collection("examples/reqs_v2/community-molecule-0.1.0.tar.gz")

    # Execute a command
    result = runtime.run(["ansible-doc", "--list"])
    assert result.returncode == 0