from collections import namedtuple import pytest @pytest.fixture def php_info(host): """ Helper fixture used to define what the expected PHP-FPM package name, PHP-FPM service name, and PHP base configuration directory is based on Debian release. Currently supports: - Debian 11 (Bullseye) Resulting information can be accessed through returned named tuple with the following properties: - fpm_package (name of the PHP-FPM package) - fpm_service (name of the PHP-FPM system service) - base_config_dir (base configuration directory for PHP) """ PHPInfo = namedtuple('PHPInfo', 'fpm_package fpm_service base_config_dir') ansible_facts = host.ansible("setup")["ansible_facts"] ansible_distribution_release = ansible_facts['ansible_distribution_release'] if ansible_distribution_release == 'bullseye': info = PHPInfo(fpm_package='php-fpm', fpm_service='php7.4-fpm', base_config_dir='/etc/php/7.4') elif ansible_distribution_release == 'bookworm': info = PHPInfo(fpm_package='php-fpm', fpm_service='php8.2-fpm', base_config_dir='/etc/php/8.2') else: raise Exception('The php_info pytest fixture does not support Debian release: %s' % ansible_distribution_release) return info