-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
Greetings! Let's assume we have such playbook
---
- name: converge
hosts: all
vars:
infraunlimited_hosts_file_backup: true
infraunlimited_hosts_file: '/etc/hosts_test'
infraunlimited_hosts_entries:
- name: 'test.example.com'
ip: '127.0.0.1'
aliases:
- 'test'
- 'test-test'
roles:
- role: ansible-role-hosts
and molecule.yml
---
dependency:
name: galaxy
driver:
name: docker
lint:
name: yamllint
enabled: False
platforms:
- name: instance
pre_build_image: true
image: centos:7
provisioner:
name: ansible
lint:
name: ansible-lint
enabled: False
log: true
verifier:
name: testinfra
options:
s: true # capture output
lint:
name: flake8
and test
import testaid
testinfra_hosts = testaid.hosts()
def test_ansible_hosts_file(host, testvars):
assert 'infraunlimited_hosts_file' in testvars
OUTPUT of verify
(.venv) [spigell@hammerhead ansible-role-hosts]$ molecule --debug verify -s test_playbook_vars
--> Validating schema /home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/default/molecule.yml.
Validation completed successfully.
--> Validating schema /home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/test_playbook_vars/molecule.yml.
Validation completed successfully.
--> Test matrix
└── test_playbook_vars
└── verify
--> Scenario: 'test_playbook_vars'
--> Action: 'verify'
--> Executing Testinfra tests found in /home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/test_playbook_vars/tests/...
DEBUG: ANSIBLE ENVIRONMENT
---
ANSIBLE_CONFIG: /home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/ansible.cfg
ANSIBLE_FILTER_PLUGINS: /home/spigell/projects/infra/infraUnlimited/.venv/lib/python3.8/site-packages/molecule/provisioner/ansible/plugins/filters:/home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/plugins/filters:/home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/plugins/filters
ANSIBLE_LIBRARY: /home/spigell/projects/infra/infraUnlimited/.venv/lib/python3.8/site-packages/molecule/provisioner/ansible/plugins/libraries:/home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/library:/home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/library
ANSIBLE_ROLES_PATH: /home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/roles:/home/spigell/projects/infra/infraUnlimited/ansible-roles
DEBUG: MOLECULE ENVIRONMENT
---
MOLECULE_DEBUG: 'True'
MOLECULE_DEPENDENCY_NAME: galaxy
MOLECULE_DRIVER_NAME: docker
MOLECULE_ENV_FILE: /home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/.env.yml
MOLECULE_EPHEMERAL_DIRECTORY: /home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars
MOLECULE_FILE: /home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/test_playbook_vars/molecule.yml
MOLECULE_INSTANCE_CONFIG: /home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/instance_config.yml
MOLECULE_INVENTORY_FILE: /home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/inventory/ansible_inventory.yml
MOLECULE_LINT_NAME: yamllint
MOLECULE_PROJECT_DIRECTORY: /home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts
MOLECULE_PROVISIONER_LINT_NAME: ansible-lint
MOLECULE_PROVISIONER_NAME: ansible
MOLECULE_SCENARIO_DIRECTORY: /home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/test_playbook_vars
MOLECULE_SCENARIO_NAME: test_playbook_vars
MOLECULE_STATE_FILE: /home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/state.yml
MOLECULE_VERIFIER_LINT_NAME: flake8
MOLECULE_VERIFIER_NAME: testinfra
MOLECULE_VERIFIER_TEST_DIRECTORY: /home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/test_playbook_vars/tests
DEBUG: SHELL REPLAY
ANSIBLE_CONFIG=/home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/ansible.cfg ANSIBLE_FILTER_PLUGINS=/home/spigell/projects/infra/infraUnlimited/.venv/lib/python3.8/site-packages/molecule/provisioner/ansible/plugins/filters:/home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/plugins/filters:/home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/plugins/filters ANSIBLE_LIBRARY=/home/spigell/projects/infra/infraUnlimited/.venv/lib/python3.8/site-packages/molecule/provisioner/ansible/plugins/libraries:/home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/library:/home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/library ANSIBLE_ROLES_PATH=/home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/roles:/home/spigell/projects/infra/infraUnlimited/ansible-roles MOLECULE_DEBUG=True MOLECULE_DEPENDENCY_NAME=galaxy MOLECULE_DRIVER_NAME=docker MOLECULE_ENV_FILE=/home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/.env.yml MOLECULE_EPHEMERAL_DIRECTORY=/home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars MOLECULE_FILE=/home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/test_playbook_vars/molecule.yml MOLECULE_INSTANCE_CONFIG=/home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/instance_config.yml MOLECULE_INVENTORY_FILE=/home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/inventory/ansible_inventory.yml MOLECULE_LINT_NAME=yamllint MOLECULE_PROJECT_DIRECTORY=/home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts MOLECULE_PROVISIONER_LINT_NAME=ansible-lint MOLECULE_PROVISIONER_NAME=ansible MOLECULE_SCENARIO_DIRECTORY=/home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/test_playbook_vars MOLECULE_SCENARIO_NAME=test_playbook_vars MOLECULE_STATE_FILE=/home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/state.yml MOLECULE_VERIFIER_LINT_NAME=flake8 MOLECULE_VERIFIER_NAME=testinfra MOLECULE_VERIFIER_TEST_DIRECTORY=/home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/test_playbook_vars/tests
DEBUG: COMMAND
/home/spigell/projects/infra/infraUnlimited/.venv/bin/pytest --connection=ansible --ansible-inventory=/home/spigell/.cache/molecule/ansible-role-hosts/test_playbook_vars/inventory/ansible_inventory.yml -p no:cacheprovider --debug -s /home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/test_playbook_vars/tests/test_default.py -vvv
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.2, py-1.8.1, pluggy-0.13.1 -- /home/spigell/projects/infra/infraUnlimited/.venv/bin/python
using: pytest-5.3.2 pylib-1.8.1
setuptools registered plugins:
testaid-0.13.1 at /home/spigell/projects/infra/infraUnlimited/.venv/lib/python3.8/site-packages/testaid/plugin.py
testinfra-3.4.0 at /home/spigell/projects/infra/infraUnlimited/.venv/lib/python3.8/site-packages/testinfra/plugin.py
rootdir: /home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/test_playbook_vars
plugins: testaid-0.13.1, testinfra-3.4.0
collected 1 item
writing pytestdebug information to /home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/test_playbook_vars/pytestdebug.log
tests/test_default.py::test_ansible_hosts_file[ansible://instance] FAILED
DEBUG: TESTVARS LOG
Using variables defined in /home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/test_playbook_vars/molecule.yml
Using roles:
=================================== FAILURES ===================================
_________________ test_ansible_hosts_file[ansible://instance] __________________
host = <testinfra.host.Host object at 0x7fdbb0d793a0>
testvars = {'ansible_apparmor': {'status': 'disabled'}, 'ansible_architecture': 'x86_64', 'ansible_bios_date': '06/04/2018', 'ansible_bios_version': '83ET82WW (1.52 )', ...}
def test_ansible_hosts_file(host, testvars):
> assert 'infraunlimited_hosts_file' in testvars
E AssertionError: assert 'infraunlimited_hosts_file' in {'ansible_apparmor': {'status': 'disabled'}, 'ansible_architecture': 'x86_64', 'ansible_bios_date': '06/04/2018', 'ansible_bios_version': '83ET82WW (1.52 )', ...}
tests/test_default.py:8: AssertionError
------------------------------ Captured log setup ------------------------------
DEBUG testaid:moleculelog.py:18 Using variables defined in /home/spigell/projects/infra/infraUnlimited/ansible-roles/ansible-role-hosts/molecule/test_playbook_vars/molecule.yml
DEBUG testaid:moleculelog.py:18 Using roles:
=============================== warnings summary ===============================
tests/test_default.py::test_ansible_hosts_file[ansible://instance]
/home/spigell/projects/infra/infraUnlimited/.venv/lib/python3.8/distutils/__init__.py:1: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
-- Docs: https://docs.pytest.org/en/latest/warnings.html
======================== 1 failed, 1 warning in 13.49s =========================
if I use extra_vars in playbook and molecule.yml it works
is playbook vars supported?
Metadata
Metadata
Assignees
Labels
No labels