5ad3d14ceb
importlib.machinery.ModuleSpec and find_spec() were introduced in Python 3.4 under PEP 451. They replace the find_module() API of PEP 302, which was deprecated from Python 3.4. They were removed in Python 3.12 along with the imp module. This change adds support for the PEP 451 APIs. Mitogen should no longer import imp on Python versions that support ModuleSpec. Tests have been added to cover the new APIs. CI jobs have been added to cover Python 3.x on macOS. Refs #1033 Co-authored-by: Witold Baryluk <witold.baryluk@gmail.com> |
8 months ago | |
---|---|---|
.. | ||
bench | 2 years ago | |
files | 9 months ago | |
hosts | 9 months ago | |
integration | 8 months ago | |
lib | 8 months ago | |
regression | 9 months ago | |
setup | 9 months ago | |
soak | 2 years ago | |
tests | 8 months ago | |
.gitignore | 5 years ago | |
Makefile | 6 years ago | |
README.md | 3 years ago | |
all.yml | 3 years ago | |
ansible.cfg | 1 year ago | |
ara_env.py | 6 years ago | |
compare_output_test.py | 6 years ago | |
mitogen_ansible_playbook.py | 3 years ago | |
requirements.txt | 4 years ago | |
run_ansible_playbook.py | 2 years 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
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.