You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mitogen/tests/ansible
Alex Willmer 1cbd1777bc tests: Check Mitogen+Ansible discovered interpreter fresh Ansible result
Previously this test used a manually compiled list of results, which is
fragile and an ongoing maintenance burden. New method should 'just work' and
be more transparent.

This technique might be more widely applicable in the test suite.
2 months ago
..
bench CI: Upgrade Github jobs from Ubuntu 20.04 to 22.04 & 24.04 9 months ago
files tests: Enable su tests under vanilla Ansible >= 2.11 2 years ago
hosts tests: Only test doas on targets with doas binary installed 2 months ago
integration tests: Check Mitogen+Ansible discovered interpreter fresh Ansible result 2 months ago
lib tests: Use a subprocess to check discovered python == running 1 year ago
regression CI: Use 2025.02 test images, keeping same OS releases 2 months ago
setup CI: Report sudo version on Ansible targets 5 months ago
soak tests: Replace uses of ``include:``, unify skipping of mitogen only tests 2 years ago
templates ansible_mitogen: Respect interpreter_python and ANSIBLE_PYTHON_INTERPRETER 1 year ago
tests ansible_mitogen: alpha datatag handling & CI for Ansible 12 (ansible-core 2.19) 8 months ago
.gitignore Merge devel/290 @ 79b979ec8544ef5d8620c64068d4a42fabf50415 6 years ago
Makefile tests: import custom binaries for tests 7 years ago
README.md tests/ansible/README: Replace reference with actual link 4 years ago
all.yml Revert "Revert "fixed tests for ansible 2.12"" 4 years ago
ansible.cfg CI: replace stdout=yaml with result_format=yaml for Ansible >= 6 tests 7 months ago
ara_env.py tests: import ara_env helper script. 7 years ago
compare_output_test.py tests: prevent compare_output_test running on import. 7 years ago
mitogen_ansible_playbook.py tests: Remove unused imports 4 years ago
requirements.txt tests: Bump dependency versions 4 months ago
run_ansible_playbook.py CI: Add is_macos_controller Ansible variable for become_unpriv_available 8 months ago

README.md

tests/ansible Directory

This is an an organically growing collection of integration and regression tests used for development and end-user bug reports.

It will be tidied up over time, meanwhile, the playbooks here are a useful demonstrator for what does and doesn't work.

Preparation

See ../image_prep/README.md.

run_ansible_playbook.py

This is necessary to set some environment variables used by future tests, as there appears to be no better way to inject them into the top-level process environment before the Mitogen connection process forks.

Running Everything

ANSIBLE_STRATEGY=mitogen_linear ./run_ansible_playbook.py all.yml

hosts/ and common-hosts

To support running the tests against a dev machine that has the requisite user accounts, the the default inventory is a directory containing a 'localhost' file that defines 'localhost' to be named 'target' in Ansible inventory, and a symlink to 'common-hosts', which defines additional targets that all derive from 'target'.

This allows ansible_tests.sh to reuse the common-hosts definitions while replacing localhost as the test target by creating a new directory that similarly symlinks in common-hosts.

There may be a better solution for this, but it works fine for now.