til icon indicating copy to clipboard operation
til copied to clipboard

Load dynamic role variables to tests when running molecule verify

Open xluffy opened this issue 3 years ago • 0 comments

In molecule/default/tests/test_default.py, we want to load role variables and facts for checking some conditions. You can do that:

  • Load default variables file
  • Load all variables file in directory
  • Merge facts into variables
@pytest.fixture()
def get_vars(host):
    """
    Get variable
    """
    defaults_files = "file=../../defaults/main.yml"
    ansible_vars = host.ansible(
        "include_vars",
        defaults_files)["ansible_facts"]
    return ansible_vars

@pytest.fixture()
def get_vars(host):
    """
    Get variable
    """
    defaults_files = "files=../../defaults/main"

    ansible_vars = host.ansible(
            "include_vars",
            defaults_files)["ansible_facts"]

    return ansible_vars
@pytest.fixture()
def get_vars(host):
    """
    Get variable
    """
    defaults_files = "dir=../../defaults/main"

    host.ansible("setup")
    ansible_vars = host.ansible(
            "include_vars",
            defaults_files)["ansible_facts"]

    ansible_vars.update(host.ansible.get_variables())

    return ansible_vars


Checkout https://github.com/pytest-dev/pytest-testinfra/issues/345

xluffy avatar Sep 13 '21 08:09 xluffy