diff --git a/metadata.json b/metadata.json index 73187dcd..72561e07 100644 --- a/metadata.json +++ b/metadata.json @@ -57,6 +57,12 @@ "20.04", "22.04" ] + }, + { + "operatingsystem": "RedHat", + "operatingsystemrelease": [ + "8" + ] } ], "requirements": [ diff --git a/spec/classes/apache/vhost_spec.rb b/spec/classes/apache/vhost_spec.rb index f3d9f215..27f95e94 100644 --- a/spec/classes/apache/vhost_spec.rb +++ b/spec/classes/apache/vhost_spec.rb @@ -46,6 +46,46 @@ 'ensure' => 'file' ) end + + if ['RedHat'].include?(facts[:os]['family']) && facts[:os]['release']['major'] == '8' + ['3.6', '3.8', '3.9'].each do |python_version| + context "with python_versions #{python_version}" do + let(:pre_condition) do + [ + "class { 'puppetboard': + python_version => \"#{python_version}\", + secret_key => 'this_should_be_a_long_secret_string', + }" + ] + end + + case python_version + when '3.6' + package_name = 'python3-mod_wsgi' + when '3.8' + package_name = 'python38-mod_wsgi' + when '3.9' + package_name = 'python39-mod_wsgi' + end + + it { is_expected.to contain_class('apache::mod::wsgi').with(package_name: package_name) } + end + end + + context 'with unsupported python_versions' do + let(:pre_condition) do + [ + "class { 'puppetboard': + python_version => '3.7', + secret_key => 'this_should_be_a_long_secret_string', + } + " + ] + end + + it { is_expected.to raise_error(Puppet::Error, %r{python version not supported}) } + end + end end end end