Skip to content


Using Ansible runtime
"""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)

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

Access to Ansible configuration

As you may not want to parse ansible-config dump yourself, you can make use of a simple python class that facilitates access to it, using python data types.

"""Sample usage of AnsibleConfig."""
from ansible_compat.config import AnsibleConfig

def test_example_config() -> None:
    """Test basic functionality of AnsibleConfig."""
    cfg = AnsibleConfig()
    assert isinstance(cfg.ACTION_WARNINGS, bool)
    # you can also use lowercase:
    assert isinstance(cfg.action_warnings, bool)
    # you can also use it as dictionary
    assert cfg["action_warnings"] == cfg.action_warnings