diff --git a/roles/wsgi_website/molecule/default/tests/conftest.py b/roles/wsgi_website/molecule/default/tests/conftest.py new file mode 100644 index 0000000000000000000000000000000000000000..ac2560bbec6fb3fc772eed682502d36f500cc589 --- /dev/null +++ b/roles/wsgi_website/molecule/default/tests/conftest.py @@ -0,0 +1,35 @@ +from collections import namedtuple + +import pytest + + +@pytest.fixture +def python_info(host): + """ + Helper fixture used to define what the expected Python details + are (paths, package names etc) based on Debian release. + + Currently supports: + + - Debian 11 (Bullseye) + - Debian 12 (Bookworm) + + Resulting information can be accessed through returned named tuple + with the following properties: + + - python_version (version of installed Python interpreter) + """ + + PythonInfo = namedtuple('PythonInfo', 'python_version') + + ansible_facts = host.ansible("setup")["ansible_facts"] + ansible_distribution_release = ansible_facts['ansible_distribution_release'] + + if ansible_distribution_release == 'bullseye': + info = PythonInfo(python_version="3.9.2") + elif ansible_distribution_release == 'bookworm': + info = PythonInfo(python_version="3.11.2") + else: + raise Exception('The php_info pytest fixture does not support Debian release: %s' % ansible_distribution_release) + + return info