From e1c419333a362014704d0636ea3cf35152226cfc Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Thu, 3 Feb 2022 13:35:30 +0100 Subject: [PATCH 1/6] Fix puppet-lint violations These were previously introduced and warnings weren't fatal due to a regression in puppetlabs_spec_helper, which is probably why it was missed. Fixes: 64a7753d5ed949c492e65b59de9452fa43f06625 Fixes: 6aaa1cf90b08e513aa16c094afc187819b8f7e9e --- manifests/server/default_privileges.pp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/manifests/server/default_privileges.pp b/manifests/server/default_privileges.pp index 4a6f846785..6a7dda9980 100644 --- a/manifests/server/default_privileges.pp +++ b/manifests/server/default_privileges.pp @@ -14,7 +14,6 @@ # @param connect_settings Specifies a hash of environment variables used when connecting to a remote server. # @param psql_path Specifies the path to the psql command. define postgresql::server::default_privileges ( - Optional[String] $target_role = undef, String $role, String $db, String $privilege, @@ -36,6 +35,7 @@ ] $ensure = 'present', String $group = $postgresql::server::group, String $psql_path = $postgresql::server::psql_path, + Optional[String] $target_role = undef, ) { # If possible use the version of the remote database, otherwise @@ -74,16 +74,16 @@ } if $target_role != undef { - $_target_role = " FOR ROLE $target_role" - $_check_target_role = "/$target_role" + $_target_role = " FOR ROLE ${target_role}" + $_check_target_role = "/${target_role}" } else { $_target_role = '' $_check_target_role = '' } if $schema != '' { - $_schema = " IN SCHEMA $schema" - $_check_schema = " AND nspname = '$schema'" + $_schema = " IN SCHEMA ${schema}" + $_check_schema = " AND nspname = '${schema}'" } else { $_schema = '' $_check_schema = ' AND nspname IS NULL' From 5638cb62dd368b5fa8aa3a6d03335c37bc296f70 Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Thu, 3 Feb 2022 12:06:41 +0100 Subject: [PATCH 2/6] Explicitly pass in a boolean for sensitive It doesn't accept nil for an optional parameter, it must be a boolean. --- spec/spec_helper_local.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/spec_helper_local.rb b/spec/spec_helper_local.rb index 5d9b349a80..dadaaf6f41 100644 --- a/spec/spec_helper_local.rb +++ b/spec/spec_helper_local.rb @@ -58,12 +58,12 @@ def param(type, title, param) ) } it { - is_expected.to run.with_params('foo', 'bar', nil, 'scram-sha-256').and_return( + is_expected.to run.with_params('foo', 'bar', false, 'scram-sha-256').and_return( 'SCRAM-SHA-256$4096:YmFy$y1VOaTvvs4V3OECvMzre9FtgCZClGuBLVE6sNPsTKbs=:HwFqmSKbihSyHMqkhufOy++cWCFIoTRSg8y6YgeALzE=' ) } it { - is_expected.to run.with_params('foo', 'bar', nil, 'scram-sha-256', 'salt').and_return( + is_expected.to run.with_params('foo', 'bar', false, 'scram-sha-256', 'salt').and_return( 'SCRAM-SHA-256$4096:c2FsdA==$zOt2zFfUQMbpQf3/vRnYB33QDK/L7APOBHniLy39j/4=:DcW5Jp8Do7wYhVp1f9aT0cyhUfzIAozGcvzXZj+M3YI=' ) } From e581fa22051bcbde3ad5dc985d95b1d25cf5476e Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Thu, 3 Feb 2022 11:56:51 +0100 Subject: [PATCH 3/6] Run rubocop autocorrect --- lib/puppet/functions/postgresql/postgresql_password.rb | 5 +++-- spec/spec_helper_local.rb | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/puppet/functions/postgresql/postgresql_password.rb b/lib/puppet/functions/postgresql/postgresql_password.rb index 89de4b9d9e..60685a8e21 100644 --- a/lib/puppet/functions/postgresql/postgresql_password.rb +++ b/lib/puppet/functions/postgresql/postgresql_password.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require 'openssl' require 'base64' @@ -46,7 +47,7 @@ def pg_sha256(password, salt) '4096', Base64.strict_encode64(salt), Base64.strict_encode64(client_key(digest)), - Base64.strict_encode64(server_key(digest)) + Base64.strict_encode64(server_key(digest)), ] end @@ -56,7 +57,7 @@ def digest_key(password, salt) salt: salt, iterations: 4096, length: 32, - hash: OpenSSL::Digest::SHA256.new + hash: OpenSSL::Digest::SHA256.new, ) end diff --git a/spec/spec_helper_local.rb b/spec/spec_helper_local.rb index dadaaf6f41..a8c1eb75b5 100644 --- a/spec/spec_helper_local.rb +++ b/spec/spec_helper_local.rb @@ -49,22 +49,22 @@ def param(type, title, param) it { is_expected.to run.with_params('foo', 'bar').and_return( - 'md596948aad3fcae80c08a35c9b5958cd89' + 'md596948aad3fcae80c08a35c9b5958cd89', ) } it { is_expected.to run.with_params('foo', 1234).and_return( - 'md539a0e1b308278a8de5e007cd1f795920' + 'md539a0e1b308278a8de5e007cd1f795920', ) } it { is_expected.to run.with_params('foo', 'bar', false, 'scram-sha-256').and_return( - 'SCRAM-SHA-256$4096:YmFy$y1VOaTvvs4V3OECvMzre9FtgCZClGuBLVE6sNPsTKbs=:HwFqmSKbihSyHMqkhufOy++cWCFIoTRSg8y6YgeALzE=' + 'SCRAM-SHA-256$4096:YmFy$y1VOaTvvs4V3OECvMzre9FtgCZClGuBLVE6sNPsTKbs=:HwFqmSKbihSyHMqkhufOy++cWCFIoTRSg8y6YgeALzE=', ) } it { is_expected.to run.with_params('foo', 'bar', false, 'scram-sha-256', 'salt').and_return( - 'SCRAM-SHA-256$4096:c2FsdA==$zOt2zFfUQMbpQf3/vRnYB33QDK/L7APOBHniLy39j/4=:DcW5Jp8Do7wYhVp1f9aT0cyhUfzIAozGcvzXZj+M3YI=' + 'SCRAM-SHA-256$4096:c2FsdA==$zOt2zFfUQMbpQf3/vRnYB33QDK/L7APOBHniLy39j/4=:DcW5Jp8Do7wYhVp1f9aT0cyhUfzIAozGcvzXZj+M3YI=', ) } it 'raises an error if there is only 1 argument' do From 7a6584427db3f03cfb059d5fc741d6ac8e72bfbc Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Thu, 3 Feb 2022 12:06:29 +0100 Subject: [PATCH 4/6] Manual Rubocop fix --- .../functions/postgresql/postgresql_password.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/puppet/functions/postgresql/postgresql_password.rb b/lib/puppet/functions/postgresql/postgresql_password.rb index 60685a8e21..ed9265dea8 100644 --- a/lib/puppet/functions/postgresql/postgresql_password.rb +++ b/lib/puppet/functions/postgresql/postgresql_password.rb @@ -43,12 +43,12 @@ def default_impl(username, password, sensitive = false, hash = 'md5', salt = nil def pg_sha256(password, salt) digest = digest_key(password, salt) - 'SCRAM-SHA-256$%s:%s$%s:%s' % [ - '4096', - Base64.strict_encode64(salt), - Base64.strict_encode64(client_key(digest)), - Base64.strict_encode64(server_key(digest)), - ] + 'SCRAM-SHA-256$%{iterations}:%{salt}$%{client_key}:%{server_key}' % { + iterations: '4096', + salt: Base64.strict_encode64(salt), + client_key: Base64.strict_encode64(client_key(digest)), + server_key: Base64.strict_encode64(server_key(digest)), + } end def digest_key(password, salt) From 9d65116555ec3b7cb49eb6151616df5447ab0a27 Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Wed, 17 Nov 2021 11:00:22 +0100 Subject: [PATCH 5/6] Follow rspec-puppet path conventions rspec-puppet places all classes in spec/classes and automatically applies the correct type. The same is true for defines in spec/defines. --- spec/{unit => }/classes/client_spec.rb | 2 +- spec/{unit => }/classes/globals_spec.rb | 2 +- spec/{unit => }/classes/lib/devel_spec.rb | 2 +- spec/{unit => }/classes/lib/java_spec.rb | 2 +- spec/{unit => }/classes/lib/perl_spec.rb | 2 +- spec/{unit => }/classes/lib/pgdocs_spec.rb | 2 +- spec/{unit => }/classes/lib/python_spec.rb | 2 +- spec/{unit => }/classes/params_spec.rb | 2 +- spec/{unit => }/classes/repo_spec.rb | 2 +- spec/{unit => }/classes/server/config_spec.rb | 2 +- spec/{unit => }/classes/server/contrib_spec.rb | 2 +- spec/{unit => }/classes/server/initdb_spec.rb | 2 +- spec/{unit => }/classes/server/plperl_spec.rb | 2 +- spec/{unit => }/classes/server/plpython_spec.rb | 2 +- spec/{unit => }/classes/server/postgis_spec.rb | 2 +- spec/{unit => }/classes/server/service_spec.rb | 2 +- spec/{unit => }/classes/server_spec.rb | 2 +- spec/{unit => }/defines/server/config_entry_spec.rb | 2 +- spec/{unit => }/defines/server/database_grant_spec.rb | 2 +- spec/{unit => }/defines/server/database_spec.rb | 2 +- spec/{unit => }/defines/server/db_spec.rb | 2 +- spec/{unit => }/defines/server/default_privileges_spec.rb | 2 +- spec/{unit => }/defines/server/extension_spec.rb | 6 +++--- spec/{unit => }/defines/server/grant_role_spec.rb | 2 +- spec/{unit => }/defines/server/grant_spec.rb | 2 +- spec/{unit => }/defines/server/pg_hba_rule_spec.rb | 2 +- spec/{unit => }/defines/server/pg_ident_rule_spec.rb | 2 +- spec/{unit => }/defines/server/reassign_owned_by_spec.rb | 2 +- spec/{unit => }/defines/server/recovery_spec.rb | 2 +- spec/{unit => }/defines/server/role_spec.rb | 2 +- spec/{unit => }/defines/server/schema_spec.rb | 2 +- spec/{unit => }/defines/server/table_grant_spec.rb | 2 +- spec/{unit => }/defines/server/tablespace_spec.rb | 2 +- spec/{unit => }/defines/validate_db_connection_spec.rb | 2 +- 34 files changed, 36 insertions(+), 36 deletions(-) rename spec/{unit => }/classes/client_spec.rb (97%) rename spec/{unit => }/classes/globals_spec.rb (98%) rename spec/{unit => }/classes/lib/devel_spec.rb (97%) rename spec/{unit => }/classes/lib/java_spec.rb (96%) rename spec/{unit => }/classes/lib/perl_spec.rb (93%) rename spec/{unit => }/classes/lib/pgdocs_spec.rb (94%) rename spec/{unit => }/classes/lib/python_spec.rb (95%) rename spec/{unit => }/classes/params_spec.rb (85%) rename spec/{unit => }/classes/repo_spec.rb (92%) rename spec/{unit => }/classes/server/config_spec.rb (99%) rename spec/{unit => }/classes/server/contrib_spec.rb (96%) rename spec/{unit => }/classes/server/initdb_spec.rb (98%) rename spec/{unit => }/classes/server/plperl_spec.rb (95%) rename spec/{unit => }/classes/server/plpython_spec.rb (95%) rename spec/{unit => }/classes/server/postgis_spec.rb (94%) rename spec/{unit => }/classes/server/service_spec.rb (89%) rename spec/{unit => }/classes/server_spec.rb (99%) rename spec/{unit => }/defines/server/config_entry_spec.rb (98%) rename spec/{unit => }/defines/server/database_grant_spec.rb (91%) rename spec/{unit => }/defines/server/database_spec.rb (97%) rename spec/{unit => }/defines/server/db_spec.rb (96%) rename spec/{unit => }/defines/server/default_privileges_spec.rb (99%) rename spec/{unit => }/defines/server/extension_spec.rb (97%) rename spec/{unit => }/defines/server/grant_role_spec.rb (98%) rename spec/{unit => }/defines/server/grant_spec.rb (99%) rename spec/{unit => }/defines/server/pg_hba_rule_spec.rb (98%) rename spec/{unit => }/defines/server/pg_ident_rule_spec.rb (96%) rename spec/{unit => }/defines/server/reassign_owned_by_spec.rb (94%) rename spec/{unit => }/defines/server/recovery_spec.rb (98%) rename spec/{unit => }/defines/server/role_spec.rb (99%) rename spec/{unit => }/defines/server/schema_spec.rb (93%) rename spec/{unit => }/defines/server/table_grant_spec.rb (91%) rename spec/{unit => }/defines/server/tablespace_spec.rb (95%) rename spec/{unit => }/defines/validate_db_connection_spec.rb (96%) diff --git a/spec/unit/classes/client_spec.rb b/spec/classes/client_spec.rb similarity index 97% rename from spec/unit/classes/client_spec.rb rename to spec/classes/client_spec.rb index a01311f9c7..8df79b5f72 100644 --- a/spec/unit/classes/client_spec.rb +++ b/spec/classes/client_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::client', type: :class do +describe 'postgresql::client' do let :facts do { os: { diff --git a/spec/unit/classes/globals_spec.rb b/spec/classes/globals_spec.rb similarity index 98% rename from spec/unit/classes/globals_spec.rb rename to spec/classes/globals_spec.rb index 1ad320c5dd..3d1f65c02b 100644 --- a/spec/unit/classes/globals_spec.rb +++ b/spec/classes/globals_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::globals', type: :class do +describe 'postgresql::globals' do context 'on a debian 8' do let(:facts) do { diff --git a/spec/unit/classes/lib/devel_spec.rb b/spec/classes/lib/devel_spec.rb similarity index 97% rename from spec/unit/classes/lib/devel_spec.rb rename to spec/classes/lib/devel_spec.rb index e3cb02e0f6..01fe1e84eb 100644 --- a/spec/unit/classes/lib/devel_spec.rb +++ b/spec/classes/lib/devel_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::lib::devel', type: :class do +describe 'postgresql::lib::devel' do let :facts do { os: { diff --git a/spec/unit/classes/lib/java_spec.rb b/spec/classes/lib/java_spec.rb similarity index 96% rename from spec/unit/classes/lib/java_spec.rb rename to spec/classes/lib/java_spec.rb index c556dfec86..631adcc3d3 100644 --- a/spec/unit/classes/lib/java_spec.rb +++ b/spec/classes/lib/java_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::lib::java', type: :class do +describe 'postgresql::lib::java' do describe 'on a debian based os' do let :facts do { diff --git a/spec/unit/classes/lib/perl_spec.rb b/spec/classes/lib/perl_spec.rb similarity index 93% rename from spec/unit/classes/lib/perl_spec.rb rename to spec/classes/lib/perl_spec.rb index ce044db68a..a3981f2e3a 100644 --- a/spec/unit/classes/lib/perl_spec.rb +++ b/spec/classes/lib/perl_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::lib::perl', type: :class do +describe 'postgresql::lib::perl' do describe 'on a redhat based os' do let :facts do { diff --git a/spec/unit/classes/lib/pgdocs_spec.rb b/spec/classes/lib/pgdocs_spec.rb similarity index 94% rename from spec/unit/classes/lib/pgdocs_spec.rb rename to spec/classes/lib/pgdocs_spec.rb index f72f4a94cb..2dc4362bc6 100644 --- a/spec/unit/classes/lib/pgdocs_spec.rb +++ b/spec/classes/lib/pgdocs_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::lib::docs', type: :class do +describe 'postgresql::lib::docs' do describe 'on a redhat based os' do let :facts do { diff --git a/spec/unit/classes/lib/python_spec.rb b/spec/classes/lib/python_spec.rb similarity index 95% rename from spec/unit/classes/lib/python_spec.rb rename to spec/classes/lib/python_spec.rb index a0b8941894..165f145053 100644 --- a/spec/unit/classes/lib/python_spec.rb +++ b/spec/classes/lib/python_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::lib::python', type: :class do +describe 'postgresql::lib::python' do describe 'on a redhat based os' do let :facts do { diff --git a/spec/unit/classes/params_spec.rb b/spec/classes/params_spec.rb similarity index 85% rename from spec/unit/classes/params_spec.rb rename to spec/classes/params_spec.rb index fd46f92b6a..c8ab852dea 100644 --- a/spec/unit/classes/params_spec.rb +++ b/spec/classes/params_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::params', type: :class do +describe 'postgresql::params' do let :facts do { os: { diff --git a/spec/unit/classes/repo_spec.rb b/spec/classes/repo_spec.rb similarity index 92% rename from spec/unit/classes/repo_spec.rb rename to spec/classes/repo_spec.rb index 28e8419602..c7c61fdf97 100644 --- a/spec/unit/classes/repo_spec.rb +++ b/spec/classes/repo_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::repo', type: :class do +describe 'postgresql::repo' do let :facts do { os: { diff --git a/spec/unit/classes/server/config_spec.rb b/spec/classes/server/config_spec.rb similarity index 99% rename from spec/unit/classes/server/config_spec.rb rename to spec/classes/server/config_spec.rb index a1ce20efab..f3401a4ffd 100644 --- a/spec/unit/classes/server/config_spec.rb +++ b/spec/classes/server/config_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::config', type: :class do +describe 'postgresql::server::config' do let(:pre_condition) do 'class { postgresql::server: manage_selinux => true }' end diff --git a/spec/unit/classes/server/contrib_spec.rb b/spec/classes/server/contrib_spec.rb similarity index 96% rename from spec/unit/classes/server/contrib_spec.rb rename to spec/classes/server/contrib_spec.rb index 33f11c9d30..85f963955a 100644 --- a/spec/unit/classes/server/contrib_spec.rb +++ b/spec/classes/server/contrib_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::contrib', type: :class do +describe 'postgresql::server::contrib' do let :pre_condition do "class { 'postgresql::server': }" end diff --git a/spec/unit/classes/server/initdb_spec.rb b/spec/classes/server/initdb_spec.rb similarity index 98% rename from spec/unit/classes/server/initdb_spec.rb rename to spec/classes/server/initdb_spec.rb index 9b4f1a59c9..e2637c40c5 100644 --- a/spec/unit/classes/server/initdb_spec.rb +++ b/spec/classes/server/initdb_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::initdb', type: :class do +describe 'postgresql::server::initdb' do let(:pre_condition) do 'include postgresql::server' end diff --git a/spec/unit/classes/server/plperl_spec.rb b/spec/classes/server/plperl_spec.rb similarity index 95% rename from spec/unit/classes/server/plperl_spec.rb rename to spec/classes/server/plperl_spec.rb index ff2c26170b..6c3ddc47df 100644 --- a/spec/unit/classes/server/plperl_spec.rb +++ b/spec/classes/server/plperl_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::plperl', type: :class do +describe 'postgresql::server::plperl' do let :facts do { os: { diff --git a/spec/unit/classes/server/plpython_spec.rb b/spec/classes/server/plpython_spec.rb similarity index 95% rename from spec/unit/classes/server/plpython_spec.rb rename to spec/classes/server/plpython_spec.rb index e98071f307..62f8e1c8f8 100644 --- a/spec/unit/classes/server/plpython_spec.rb +++ b/spec/classes/server/plpython_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::plpython', type: :class do +describe 'postgresql::server::plpython' do let :facts do { os: { diff --git a/spec/unit/classes/server/postgis_spec.rb b/spec/classes/server/postgis_spec.rb similarity index 94% rename from spec/unit/classes/server/postgis_spec.rb rename to spec/classes/server/postgis_spec.rb index 814387849c..0f66873af8 100644 --- a/spec/unit/classes/server/postgis_spec.rb +++ b/spec/classes/server/postgis_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::postgis', type: :class do +describe 'postgresql::server::postgis' do let :pre_condition do "class { 'postgresql::server': }" end diff --git a/spec/unit/classes/server/service_spec.rb b/spec/classes/server/service_spec.rb similarity index 89% rename from spec/unit/classes/server/service_spec.rb rename to spec/classes/server/service_spec.rb index ad81957c88..96da750ecb 100644 --- a/spec/unit/classes/server/service_spec.rb +++ b/spec/classes/server/service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::service', type: :class do +describe 'postgresql::server::service' do let :pre_condition do 'include postgresql::server' end diff --git a/spec/unit/classes/server_spec.rb b/spec/classes/server_spec.rb similarity index 99% rename from spec/unit/classes/server_spec.rb rename to spec/classes/server_spec.rb index a44c96f924..c566f6fdf4 100644 --- a/spec/unit/classes/server_spec.rb +++ b/spec/classes/server_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server', type: :class do +describe 'postgresql::server' do let :facts do { os: { diff --git a/spec/unit/defines/server/config_entry_spec.rb b/spec/defines/server/config_entry_spec.rb similarity index 98% rename from spec/unit/defines/server/config_entry_spec.rb rename to spec/defines/server/config_entry_spec.rb index 43e92ea1bf..eb104e73d6 100644 --- a/spec/unit/defines/server/config_entry_spec.rb +++ b/spec/defines/server/config_entry_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::config_entry', type: :define do +describe 'postgresql::server::config_entry' do let :facts do { os: { diff --git a/spec/unit/defines/server/database_grant_spec.rb b/spec/defines/server/database_grant_spec.rb similarity index 91% rename from spec/unit/defines/server/database_grant_spec.rb rename to spec/defines/server/database_grant_spec.rb index c021c84d8e..95d0f70f92 100644 --- a/spec/unit/defines/server/database_grant_spec.rb +++ b/spec/defines/server/database_grant_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::database_grant', type: :define do +describe 'postgresql::server::database_grant' do let :facts do { os: { diff --git a/spec/unit/defines/server/database_spec.rb b/spec/defines/server/database_spec.rb similarity index 97% rename from spec/unit/defines/server/database_spec.rb rename to spec/defines/server/database_spec.rb index 3290dc7ce4..c5144b7028 100644 --- a/spec/unit/defines/server/database_spec.rb +++ b/spec/defines/server/database_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::database', type: :define do +describe 'postgresql::server::database' do let :facts do { os: { diff --git a/spec/unit/defines/server/db_spec.rb b/spec/defines/server/db_spec.rb similarity index 96% rename from spec/unit/defines/server/db_spec.rb rename to spec/defines/server/db_spec.rb index ca5a2956b1..6f6d46ad60 100644 --- a/spec/unit/defines/server/db_spec.rb +++ b/spec/defines/server/db_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::db', type: :define do +describe 'postgresql::server::db' do let :facts do { os: { diff --git a/spec/unit/defines/server/default_privileges_spec.rb b/spec/defines/server/default_privileges_spec.rb similarity index 99% rename from spec/unit/defines/server/default_privileges_spec.rb rename to spec/defines/server/default_privileges_spec.rb index d56b79f851..01222dae65 100644 --- a/spec/unit/defines/server/default_privileges_spec.rb +++ b/spec/defines/server/default_privileges_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::default_privileges', type: :define do +describe 'postgresql::server::default_privileges' do let :facts do { os: { diff --git a/spec/unit/defines/server/extension_spec.rb b/spec/defines/server/extension_spec.rb similarity index 97% rename from spec/unit/defines/server/extension_spec.rb rename to spec/defines/server/extension_spec.rb index 44454e8216..dc92b24054 100644 --- a/spec/unit/defines/server/extension_spec.rb +++ b/spec/defines/server/extension_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::extension', type: :define do # rubocop:disable RSpec/MultipleDescribes +describe 'postgresql::server::extension' do # rubocop:disable RSpec/MultipleDescribes let :pre_condition do "class { 'postgresql::server': } postgresql::server::database { 'template_postgis': @@ -119,7 +119,7 @@ end end -describe 'postgresql::server::extension', type: :define do +describe 'postgresql::server::extension' do let :pre_condition do "class { 'postgresql::server': } postgresql::server::database { 'template_postgis2': @@ -160,7 +160,7 @@ end end -describe 'postgresql::server::extension', type: :define do +describe 'postgresql::server::extension' do let :facts do { os: { diff --git a/spec/unit/defines/server/grant_role_spec.rb b/spec/defines/server/grant_role_spec.rb similarity index 98% rename from spec/unit/defines/server/grant_role_spec.rb rename to spec/defines/server/grant_role_spec.rb index a655c61ebe..a4c0b99abe 100644 --- a/spec/unit/defines/server/grant_role_spec.rb +++ b/spec/defines/server/grant_role_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::grant_role', type: :define do +describe 'postgresql::server::grant_role' do let :pre_condition do "class { 'postgresql::server': }" end diff --git a/spec/unit/defines/server/grant_spec.rb b/spec/defines/server/grant_spec.rb similarity index 99% rename from spec/unit/defines/server/grant_spec.rb rename to spec/defines/server/grant_spec.rb index e2d12d5e0e..c3586d004f 100644 --- a/spec/unit/defines/server/grant_spec.rb +++ b/spec/defines/server/grant_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::grant', type: :define do +describe 'postgresql::server::grant' do let :facts do { os: { diff --git a/spec/unit/defines/server/pg_hba_rule_spec.rb b/spec/defines/server/pg_hba_rule_spec.rb similarity index 98% rename from spec/unit/defines/server/pg_hba_rule_spec.rb rename to spec/defines/server/pg_hba_rule_spec.rb index ed0c6fa926..0bef824323 100644 --- a/spec/unit/defines/server/pg_hba_rule_spec.rb +++ b/spec/defines/server/pg_hba_rule_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::pg_hba_rule', type: :define do +describe 'postgresql::server::pg_hba_rule' do let :facts do { os: { diff --git a/spec/unit/defines/server/pg_ident_rule_spec.rb b/spec/defines/server/pg_ident_rule_spec.rb similarity index 96% rename from spec/unit/defines/server/pg_ident_rule_spec.rb rename to spec/defines/server/pg_ident_rule_spec.rb index 6da10929bd..59dffbfc5b 100644 --- a/spec/unit/defines/server/pg_ident_rule_spec.rb +++ b/spec/defines/server/pg_ident_rule_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::pg_ident_rule', type: :define do +describe 'postgresql::server::pg_ident_rule' do let :facts do { os: { diff --git a/spec/unit/defines/server/reassign_owned_by_spec.rb b/spec/defines/server/reassign_owned_by_spec.rb similarity index 94% rename from spec/unit/defines/server/reassign_owned_by_spec.rb rename to spec/defines/server/reassign_owned_by_spec.rb index 19ea8f1ad1..227d621bbd 100644 --- a/spec/unit/defines/server/reassign_owned_by_spec.rb +++ b/spec/defines/server/reassign_owned_by_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::reassign_owned_by', type: :define do +describe 'postgresql::server::reassign_owned_by' do let :facts do { os: { diff --git a/spec/unit/defines/server/recovery_spec.rb b/spec/defines/server/recovery_spec.rb similarity index 98% rename from spec/unit/defines/server/recovery_spec.rb rename to spec/defines/server/recovery_spec.rb index 1ee1c33833..4167508954 100644 --- a/spec/unit/defines/server/recovery_spec.rb +++ b/spec/defines/server/recovery_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::recovery', type: :define do +describe 'postgresql::server::recovery' do let :facts do { os: { diff --git a/spec/unit/defines/server/role_spec.rb b/spec/defines/server/role_spec.rb similarity index 99% rename from spec/unit/defines/server/role_spec.rb rename to spec/defines/server/role_spec.rb index 53f2e93553..f4a614d1ce 100644 --- a/spec/unit/defines/server/role_spec.rb +++ b/spec/defines/server/role_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::role', type: :define do +describe 'postgresql::server::role' do let :facts do { os: { diff --git a/spec/unit/defines/server/schema_spec.rb b/spec/defines/server/schema_spec.rb similarity index 93% rename from spec/unit/defines/server/schema_spec.rb rename to spec/defines/server/schema_spec.rb index 9ca9a2391c..817de21cba 100644 --- a/spec/unit/defines/server/schema_spec.rb +++ b/spec/defines/server/schema_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::schema', type: :define do +describe 'postgresql::server::schema' do let :facts do { os: { diff --git a/spec/unit/defines/server/table_grant_spec.rb b/spec/defines/server/table_grant_spec.rb similarity index 91% rename from spec/unit/defines/server/table_grant_spec.rb rename to spec/defines/server/table_grant_spec.rb index 5f9eb69cac..b8b5c9f811 100644 --- a/spec/unit/defines/server/table_grant_spec.rb +++ b/spec/defines/server/table_grant_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::table_grant', type: :define do +describe 'postgresql::server::table_grant' do let :facts do { os: { diff --git a/spec/unit/defines/server/tablespace_spec.rb b/spec/defines/server/tablespace_spec.rb similarity index 95% rename from spec/unit/defines/server/tablespace_spec.rb rename to spec/defines/server/tablespace_spec.rb index 336a4f773b..e8dd9dd5bb 100644 --- a/spec/unit/defines/server/tablespace_spec.rb +++ b/spec/defines/server/tablespace_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::server::tablespace', type: :define do +describe 'postgresql::server::tablespace' do let :facts do { os: { diff --git a/spec/unit/defines/validate_db_connection_spec.rb b/spec/defines/validate_db_connection_spec.rb similarity index 96% rename from spec/unit/defines/validate_db_connection_spec.rb rename to spec/defines/validate_db_connection_spec.rb index 4143c73190..4777f37ccc 100644 --- a/spec/unit/defines/validate_db_connection_spec.rb +++ b/spec/defines/validate_db_connection_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe 'postgresql::validate_db_connection', type: :define do +describe 'postgresql::validate_db_connection' do let :facts do { os: { From f4a42a7d788a4d04fcf56a8c397a851e0e081c57 Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Wed, 17 Nov 2021 11:48:14 +0100 Subject: [PATCH 6/6] Write facts as shared examples and move to Debian 11 Previously there was a lot of duplication between facts. This now stores them as shared examples in spec_helper_local.rb and also extracts them from rspec-puppet-facts where possible. Debian 8 isn't in metadata.json anymore which meant it was testing for an unsupported OS by default. It's now changed to Debian 11. --- spec/classes/client_spec.rb | 10 +- spec/classes/globals_spec.rb | 32 +--- spec/classes/lib/devel_spec.rb | 45 +---- spec/classes/lib/java_spec.rb | 20 +-- spec/classes/lib/perl_spec.rb | 24 +-- spec/classes/lib/pgdocs_spec.rb | 10 +- spec/classes/lib/python_spec.rb | 36 +--- spec/classes/params_spec.rb | 16 +- spec/classes/repo_spec.rb | 17 +- spec/classes/server/config_spec.rb | 154 +----------------- spec/classes/server/contrib_spec.rb | 44 +---- spec/classes/server/initdb_spec.rb | 76 +-------- spec/classes/server/plperl_spec.rb | 13 +- spec/classes/server/plpython_spec.rb | 15 +- spec/classes/server/postgis_spec.rb | 14 +- spec/classes/server/service_spec.rb | 12 +- spec/classes/server_spec.rb | 36 +--- spec/defines/server/config_entry_spec.rb | 73 +-------- spec/defines/server/database_grant_spec.rb | 13 +- spec/defines/server/database_spec.rb | 13 +- spec/defines/server/db_spec.rb | 13 +- .../defines/server/default_privileges_spec.rb | 65 +------- spec/defines/server/extension_spec.rb | 45 +---- spec/defines/server/grant_role_spec.rb | 15 +- spec/defines/server/grant_spec.rb | 13 +- spec/defines/server/pg_hba_rule_spec.rb | 13 +- spec/defines/server/pg_ident_rule_spec.rb | 13 +- spec/defines/server/reassign_owned_by_spec.rb | 13 +- spec/defines/server/recovery_spec.rb | 13 +- spec/defines/server/role_spec.rb | 13 +- spec/defines/server/schema_spec.rb | 13 +- spec/defines/server/table_grant_spec.rb | 13 +- spec/defines/server/tablespace_spec.rb | 13 +- spec/defines/validate_db_connection_spec.rb | 10 +- spec/spec_helper_local.rb | 96 +++++++++++ 35 files changed, 186 insertions(+), 848 deletions(-) diff --git a/spec/classes/client_spec.rb b/spec/classes/client_spec.rb index 8df79b5f72..87f5f34604 100644 --- a/spec/classes/client_spec.rb +++ b/spec/classes/client_spec.rb @@ -3,15 +3,7 @@ require 'spec_helper' describe 'postgresql::client' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end + include_examples 'Debian 11' describe 'with parameters' do let :params do diff --git a/spec/classes/globals_spec.rb b/spec/classes/globals_spec.rb index 3d1f65c02b..4e994d91cb 100644 --- a/spec/classes/globals_spec.rb +++ b/spec/classes/globals_spec.rb @@ -3,23 +3,8 @@ require 'spec_helper' describe 'postgresql::globals' do - context 'on a debian 8' do - let(:facts) do - { - os: { - family: 'Debian', - name: 'Debian', - release: { - full: '8.0', - major: '8', - }, - distro: { 'codename' => 'jessie' }, - }, - osfamily: 'Debian', - lsbdistid: 'Debian', - lsbdistcodename: 'jessie', - } - end + context 'on a debian 11' do + include_examples 'Debian 11' describe 'with no parameters' do it 'works' do @@ -40,17 +25,8 @@ end end - context 'on redhat family systems' do - let(:facts) do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { 'full' => '7.1', 'major' => '7' }, - }, - osfamily: 'RedHat', - } - end + context 'on redhat 7' do + include_examples 'RedHat 7' describe 'with no parameters' do it 'works' do diff --git a/spec/classes/lib/devel_spec.rb b/spec/classes/lib/devel_spec.rb index 01fe1e84eb..7e5e3fa9f4 100644 --- a/spec/classes/lib/devel_spec.rb +++ b/spec/classes/lib/devel_spec.rb @@ -3,15 +3,7 @@ require 'spec_helper' describe 'postgresql::lib::devel' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end + include_examples 'Debian 11' it { is_expected.to contain_class('postgresql::lib::devel') } @@ -19,7 +11,7 @@ it { is_expected.not_to contain_file('/usr/bin/pg_config') \ .with_ensure('link') \ - .with_target('/usr/lib/postgresql/8.4/bin/pg_config') + .with_target('/usr/lib/postgresql/13/bin/pg_config') } end @@ -34,29 +26,13 @@ end describe 'should not link pg_config on RedHat with default version' do - let(:facts) do - { - os: { - family: 'RedHat', - name: 'CentOS', - release: { 'full' => '6.3', 'major' => '6' }, - }, - } - end + include_examples 'RedHat 6' it { is_expected.not_to contain_file('/usr/bin/pg_config') } end describe 'link pg_config on RedHat with non-default version' do - let(:facts) do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { 'full' => '6.3', 'major' => '6' }, - }, - } - end + include_examples 'RedHat 6' let :pre_condition do "class { '::postgresql::globals': version => '9.3' }" end @@ -69,14 +45,7 @@ end describe 'on Gentoo' do - let :facts do - { - os: { - family: 'Gentoo', - name: 'Gentoo', - }, - } - end + include_examples 'Gentoo' let :params do { link_pg_config: false, @@ -84,9 +53,7 @@ end it 'fails to compile' do - expect { - is_expected.to compile - }.to raise_error(%r{is not supported}) + is_expected.to compile.and_raise_error(%r{is not supported}) end end end diff --git a/spec/classes/lib/java_spec.rb b/spec/classes/lib/java_spec.rb index 631adcc3d3..0e0797d4e1 100644 --- a/spec/classes/lib/java_spec.rb +++ b/spec/classes/lib/java_spec.rb @@ -4,15 +4,7 @@ describe 'postgresql::lib::java' do describe 'on a debian based os' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end + include_examples 'Debian 11' it { is_expected.to contain_package('postgresql-jdbc').with( @@ -24,15 +16,7 @@ end describe 'on a redhat based os' do - let :facts do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { 'full' => '6.4', 'major' => '6' }, - }, - } - end + include_examples 'RedHat 8' it { is_expected.to contain_package('postgresql-jdbc').with( diff --git a/spec/classes/lib/perl_spec.rb b/spec/classes/lib/perl_spec.rb index a3981f2e3a..3acd014da0 100644 --- a/spec/classes/lib/perl_spec.rb +++ b/spec/classes/lib/perl_spec.rb @@ -3,16 +3,8 @@ require 'spec_helper' describe 'postgresql::lib::perl' do - describe 'on a redhat based os' do - let :facts do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { 'full' => '6.4', 'major' => '6' }, - }, - } - end + describe 'on redhat 8' do + include_examples 'RedHat 8' it { is_expected.to contain_package('perl-DBD-Pg').with( @@ -22,16 +14,8 @@ } end - describe 'on a debian based os' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end + describe 'on debian 11' do + include_examples 'Debian 11' it { is_expected.to contain_package('perl-DBD-Pg').with( diff --git a/spec/classes/lib/pgdocs_spec.rb b/spec/classes/lib/pgdocs_spec.rb index 2dc4362bc6..febce3b57e 100644 --- a/spec/classes/lib/pgdocs_spec.rb +++ b/spec/classes/lib/pgdocs_spec.rb @@ -4,15 +4,7 @@ describe 'postgresql::lib::docs' do describe 'on a redhat based os' do - let :facts do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { 'full' => '6.4', 'major' => '6' }, - }, - } - end + include_examples 'RedHat 8' it { is_expected.to contain_package('postgresql-docs').with( diff --git a/spec/classes/lib/python_spec.rb b/spec/classes/lib/python_spec.rb index 165f145053..87af71b71c 100644 --- a/spec/classes/lib/python_spec.rb +++ b/spec/classes/lib/python_spec.rb @@ -3,16 +3,8 @@ require 'spec_helper' describe 'postgresql::lib::python' do - describe 'on a redhat based os' do - let :facts do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { 'full' => '6.4', 'major' => '6' }, - }, - } - end + describe 'on redhat 7' do + include_examples 'RedHat 7' it { is_expected.to contain_package('python-psycopg2').with( @@ -22,16 +14,8 @@ } end - describe 'on a redhat based os with python 3' do - let :facts do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { 'full' => '8.2', 'major' => '8' }, - }, - } - end + describe 'on redhat 8' do + include_examples 'RedHat 8' it { is_expected.to contain_package('python-psycopg2').with( @@ -41,16 +25,8 @@ } end - describe 'on a debian based os' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end + describe 'on debian 11' do + include_examples 'Debian 11' it { is_expected.to contain_package('python-psycopg2').with( diff --git a/spec/classes/params_spec.rb b/spec/classes/params_spec.rb index c8ab852dea..8fc61e3e34 100644 --- a/spec/classes/params_spec.rb +++ b/spec/classes/params_spec.rb @@ -3,15 +3,11 @@ require 'spec_helper' describe 'postgresql::params' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end + on_supported_os.each do |os, os_facts| + context "on #{os}" do + let(:facts) { os_facts } - it { is_expected.to contain_class('postgresql::params') } + it { is_expected.to contain_class('postgresql::params') } + end + end end diff --git a/spec/classes/repo_spec.rb b/spec/classes/repo_spec.rb index c7c61fdf97..23f97a6db5 100644 --- a/spec/classes/repo_spec.rb +++ b/spec/classes/repo_spec.rb @@ -3,22 +3,7 @@ require 'spec_helper' describe 'postgresql::repo' do - let :facts do - { - os: { - name: 'Debian', - family: 'Debian', - release: { - full: '8.0', - major: '8', - }, - distro: { 'codename' => 'jessie' }, - }, - osfamily: 'Debian', - lsbdistid: 'Debian', - lsbdistcodename: 'jessie', - } - end + include_examples 'Debian 11' describe 'with no parameters' do it 'instantiates apt_postgresql_org class' do diff --git a/spec/classes/server/config_spec.rb b/spec/classes/server/config_spec.rb index f3401a4ffd..55fbf665ce 100644 --- a/spec/classes/server/config_spec.rb +++ b/spec/classes/server/config_spec.rb @@ -8,28 +8,7 @@ end describe 'on RedHat 7' do - let(:facts) do - { - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - os: { - 'architecture' => 'x86_64', - 'family' => 'RedHat', - 'hardware' => 'x86_64', - 'name' => 'CentOS', - 'release' => { - 'full' => '7.9.2009', - 'major' => '7', - 'minor' => '9', - }, - selinux: { 'enabled' => true }, - }, - operatingsystemrelease: '7.9.2009', - service_provider: 'systemd', - } - end + include_examples 'RedHat 7' it 'has SELinux port defined' do is_expected.to contain_package('policycoreutils-python').with(ensure: 'installed') @@ -58,29 +37,7 @@ end context 'RHEL 7 host with Puppet 5' do - let(:facts) do - { - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - os: { - 'architecture' => 'x86_64', - 'family' => 'RedHat', - 'hardware' => 'x86_64', - 'name' => 'CentOS', - 'release' => { - 'full' => '7.9.2009', - 'major' => '7', - 'minor' => '9', - }, - selinux: { 'enabled' => true }, - }, - operatingsystemrelease: '7.9.2009', - puppetversion: '5.0.1', - service_provider: 'systemd', - } - end + include_examples 'RedHat 7' it 'has systemctl restart command' do is_expected.to contain_exec('restart-systemd').with( @@ -116,29 +73,7 @@ class { 'postgresql::server': } end describe 'on Redhat 8' do - let(:facts) do - { - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - os: { - 'architecture' => 'x86_64', - 'family' => 'RedHat', - 'hardware' => 'x86_64', - 'name' => 'RedHat', - 'release' => { - 'full' => '8.2.2004', - 'major' => '8', - 'minor' => '2', - }, - selinux: { 'enabled' => true }, - }, - operatingsystem: 'RedHat', - operatingsystemrelease: '8.2.2004', - service_provider: 'systemd', - } - end + include_examples 'RedHat 8' it 'has SELinux port defined' do is_expected.to contain_package('policycoreutils-python-utils').with(ensure: 'installed') @@ -189,29 +124,7 @@ class { 'postgresql::server': } end describe 'on Fedora 33' do - let(:facts) do - { - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - os: { - 'architecture' => 'x86_64', - 'family' => 'RedHat', - 'hardware' => 'x86_64', - 'name' => 'Fedora', - 'release' => { - 'full' => '33', - 'major' => '33', - 'minor' => '33', - }, - selinux: { 'enabled' => true }, - }, - operatingsystem: 'Fedora', - operatingsystemrelease: '33', - service_provider: 'systemd', - } - end + include_examples 'Fedora 33' it 'has SELinux port defined' do is_expected.to contain_package('policycoreutils-python-utils').with(ensure: 'installed') @@ -263,23 +176,7 @@ class { 'postgresql::server': } end describe 'on Amazon' do - let :facts do - { - os: { - family: 'RedHat', - name: 'Amazon', - release: { - 'full' => '1.0', - 'major' => '1', - }, - selinux: { 'enabled' => true }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - } - end + include_examples 'Amazon 1' it 'has SELinux port defined' do is_expected.to contain_package('policycoreutils').with(ensure: 'installed') @@ -292,6 +189,7 @@ class { 'postgresql::server': } end describe 'with managed pg_hba_conf and ipv4acls' do + include_examples 'RedHat 7' let(:pre_condition) do <<-EOS class { 'postgresql::globals': @@ -306,25 +204,6 @@ class { 'postgresql::server': } EOS end - let(:facts) do - { - os: { - family: 'RedHat', - name: 'CentOS', - release: { - 'full' => '7.9.2009', - 'major' => '7', - 'minor' => '9', - }, - selinux: { 'enabled' => true }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - service_provider: 'systemd', - } - end it 'has hba rule default' do is_expected.to contain_postgresql__server__pg_hba_rule('local access as postgres user') @@ -335,6 +214,8 @@ class { 'postgresql::server': end describe 'on Gentoo' do + include_examples 'Gentoo' + let(:pre_condition) do <<-EOS class { 'postgresql::globals': @@ -344,25 +225,6 @@ class { 'postgresql::server': } EOS end - let(:facts) do - { - os: { - family: 'Gentoo', - name: 'Gentoo', - release: { - 'full' => 'unused', - 'major' => 'unused', - }, - selinux: { 'enabled' => true }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: false, - service_provider: 'systemd', - } - end - it 'does not have SELinux port defined' do is_expected.not_to contain_exec('/usr/sbin/semanage port -a -t postgresql_port_t -p tcp 5432') end diff --git a/spec/classes/server/contrib_spec.rb b/spec/classes/server/contrib_spec.rb index 85f963955a..4092801c30 100644 --- a/spec/classes/server/contrib_spec.rb +++ b/spec/classes/server/contrib_spec.rb @@ -3,26 +3,12 @@ require 'spec_helper' describe 'postgresql::server::contrib' do + include_examples 'RedHat 8' + let :pre_condition do "class { 'postgresql::server': }" end - let :facts do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { 'major' => '8' }, - selinux: { - enabled: false, - }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end - describe 'with parameters' do let(:params) do { @@ -45,31 +31,15 @@ end describe 'on Gentoo' do - let :facts do - { - os: { - family: 'Gentoo', - name: 'Gentoo', - }, - } - end + include_examples 'Gentoo' - it 'postgresql-contrib should not be installed' do - is_expected.to compile - is_expected.not_to contain_package('postgresql-contrib') + it 'fails to compile' do + is_expected.to compile.and_raise_error(%r{is not supported}) end end - describe 'on Debian' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end + describe 'on Debian 11' do + include_examples 'Debian 11' it 'postgresql-contrib should not be installed' do is_expected.to compile diff --git a/spec/classes/server/initdb_spec.rb b/spec/classes/server/initdb_spec.rb index e2637c40c5..50ba8c853b 100644 --- a/spec/classes/server/initdb_spec.rb +++ b/spec/classes/server/initdb_spec.rb @@ -8,20 +8,7 @@ end describe 'on RedHat' do - let :facts do - { - os: { - family: 'RedHat', - name: 'CentOS', - release: { 'full' => '6.0', 'major' => '6' }, - selinux: { 'enabled' => true }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - } - end + include_examples 'RedHat 8' it { is_expected.to contain_file('/var/lib/pgsql/data').with_ensure('directory') } @@ -48,20 +35,7 @@ class {'postgresql::server': end describe 'on Amazon' do - let :facts do - { - os: { - family: 'RedHat', - name: 'Amazon', - release: { 'full' => '1.0', 'major' => '1' }, - selinux: { 'enabled' => true }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - } - end + include_examples 'Amazon 1' it { is_expected.to contain_file('/var/lib/pgsql92/data').with_ensure('directory') } @@ -80,20 +54,7 @@ class {'postgresql::server': end describe 'exec with module_workdir => /var/tmp' do - let :facts do - { - os: { - family: 'RedHat', - name: 'CentOS', - release: { 'full' => '6.0', 'major' => '6' }, - selinux: { 'enabled' => true }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - } - end + include_examples 'RedHat 8' let(:pre_condition) do <<-EOS class { 'postgresql::globals': @@ -111,20 +72,7 @@ class { 'postgresql::server': } end describe 'exec with module_workdir => undef' do - let :facts do - { - os: { - family: 'RedHat', - name: 'CentOS', - release: { 'full' => '6.0', 'major' => '6' }, - selinux: { 'enabled' => true }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - } - end + include_examples 'RedHat 8' let(:pre_condition) do <<-EOS class { 'postgresql::globals': @@ -141,21 +89,7 @@ class { 'postgresql::server': } end describe 'postgresql_psql with module_workdir => /var/tmp' do - let :facts do - { - os: { - family: 'RedHat', - name: 'CentOS', - release: { 'full' => '6.0', 'major' => '6' }, - selinux: { 'enabled' => true }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - } - end - + include_examples 'RedHat 8' let(:pre_condition) do <<-EOS class { 'postgresql::globals': diff --git a/spec/classes/server/plperl_spec.rb b/spec/classes/server/plperl_spec.rb index 6c3ddc47df..6df41c2cd8 100644 --- a/spec/classes/server/plperl_spec.rb +++ b/spec/classes/server/plperl_spec.rb @@ -3,18 +3,7 @@ require 'spec_helper' describe 'postgresql::server::plperl' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :pre_condition do "class { 'postgresql::server': }" diff --git a/spec/classes/server/plpython_spec.rb b/spec/classes/server/plpython_spec.rb index 62f8e1c8f8..defb4bb31e 100644 --- a/spec/classes/server/plpython_spec.rb +++ b/spec/classes/server/plpython_spec.rb @@ -3,20 +3,7 @@ require 'spec_helper' describe 'postgresql::server::plpython' do - let :facts do - { - os: { - family: 'RedHat', - name: 'CentOS', - release: { 'full' => '6.8', 'major' => '6' }, - selinux: { 'enabled' => true }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - } - end + include_examples 'RedHat 8' let :pre_condition do "class { 'postgresql::server': }" diff --git a/spec/classes/server/postgis_spec.rb b/spec/classes/server/postgis_spec.rb index 0f66873af8..69c8d95f8d 100644 --- a/spec/classes/server/postgis_spec.rb +++ b/spec/classes/server/postgis_spec.rb @@ -3,23 +3,11 @@ require 'spec_helper' describe 'postgresql::server::postgis' do + include_examples 'Debian 11' let :pre_condition do "class { 'postgresql::server': }" end - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end - describe 'with parameters' do let(:params) do { diff --git a/spec/classes/server/service_spec.rb b/spec/classes/server/service_spec.rb index 96da750ecb..1fa6f5ab8d 100644 --- a/spec/classes/server/service_spec.rb +++ b/spec/classes/server/service_spec.rb @@ -3,20 +3,12 @@ require 'spec_helper' describe 'postgresql::server::service' do + include_examples 'Ubuntu 18.04' + let :pre_condition do 'include postgresql::server' end - let :facts do - { - os: { - family: 'Debian', - name: 'Ubuntu', - release: { 'full' => '18.04', 'major' => '18.04' }, - }, - } - end - it { is_expected.to contain_class('postgresql::server::service') } it { is_expected.to contain_service('postgresqld').with_name('postgresql').with_status('/usr/sbin/service postgresql@*-main status') } end diff --git a/spec/classes/server_spec.rb b/spec/classes/server_spec.rb index c566f6fdf4..7ebe246998 100644 --- a/spec/classes/server_spec.rb +++ b/spec/classes/server_spec.rb @@ -3,30 +3,12 @@ require 'spec_helper' describe 'postgresql::server' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { - full: '8.0', - major: '8', - }, - distro: { 'codename' => 'jessie' }, - }, - osfamily: 'Debian', - lsbdistid: 'Debian', - lsbdistcodename: 'jessie', - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' describe 'with no parameters' do it { is_expected.to contain_class('postgresql::params') } it { is_expected.to contain_class('postgresql::server') } - it { is_expected.to contain_file('/var/lib/postgresql/9.4/main') } + it { is_expected.to contain_file('/var/lib/postgresql/13/main') } it { is_expected.to contain_exec('postgresql_reload').with('command' => 'service postgresql reload') } @@ -36,19 +18,7 @@ end describe 'with manage_dnf_module true' do - let(:facts) do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { 'full' => '8.3', 'major' => '8' }, - selinux: { - enabled: true, - } - }, - osfamily: 'RedHat', - } - end + include_examples 'RedHat 8' let(:pre_condition) do <<-PUPPET diff --git a/spec/defines/server/config_entry_spec.rb b/spec/defines/server/config_entry_spec.rb index eb104e73d6..b4a2cebac4 100644 --- a/spec/defines/server/config_entry_spec.rb +++ b/spec/defines/server/config_entry_spec.rb @@ -3,24 +3,7 @@ require 'spec_helper' describe 'postgresql::server::config_entry' do - let :facts do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { - 'full' => '6.4', - 'major' => '6', - 'minor' => '4', - }, - selinux: { 'enabled' => true }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - } - end + include_examples 'Debian 11' let(:title) { 'config_entry' } @@ -39,22 +22,10 @@ end context 'ports' do + let(:params) { { ensure: 'present', name: 'port_spec', value: '5432' } } + context 'redhat 6' do - let :facts do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { 'full' => '6.4', 'major' => '6' }, - selinux: { 'enabled' => true }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - } - end - let(:params) { { ensure: 'present', name: 'port_spec', value: '5432' } } + include_examples 'RedHat 6' it 'stops postgresql and changes the port #exec' do is_expected.to contain_exec('postgresql_stop_port') @@ -64,26 +35,7 @@ end end context 'redhat 7' do - let :facts do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { - 'full' => '7.9.2009', - 'major' => '7', - 'minor' => '9', - }, - selinux: { 'enabled' => true }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - service_provider: 'systemd', - } - end - let(:params) { { ensure: 'present', name: 'port_spec', value: '5432' } } + include_examples 'RedHat 7' it 'stops postgresql and changes the port #file' do is_expected.to contain_file('systemd-override') @@ -92,6 +44,7 @@ end context 'data_directory' do + include_examples 'RedHat 6' let(:params) { { ensure: 'present', name: 'data_directory_spec', value: '/var/pgsql' } } it 'stops postgresql and changes the data directory #exec' do @@ -112,20 +65,6 @@ end context 'unix_socket_directories' do - let :facts do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { 'full' => '7.0', 'major' => '7' }, - selinux: { 'enabled' => true }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - selinux: true, - } - end let(:params) { { ensure: 'present', name: 'unix_socket_directories', value: '/var/pgsql, /opt/postgresql, /root/' } } it 'restarts the server and change unix_socket_directories to the provided list' do diff --git a/spec/defines/server/database_grant_spec.rb b/spec/defines/server/database_grant_spec.rb index 95d0f70f92..3951fa2b27 100644 --- a/spec/defines/server/database_grant_spec.rb +++ b/spec/defines/server/database_grant_spec.rb @@ -3,18 +3,7 @@ require 'spec_helper' describe 'postgresql::server::database_grant' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/defines/server/database_spec.rb b/spec/defines/server/database_spec.rb index c5144b7028..158706001a 100644 --- a/spec/defines/server/database_spec.rb +++ b/spec/defines/server/database_spec.rb @@ -3,18 +3,7 @@ require 'spec_helper' describe 'postgresql::server::database' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :title do 'test' end diff --git a/spec/defines/server/db_spec.rb b/spec/defines/server/db_spec.rb index 6f6d46ad60..65677d9aa1 100644 --- a/spec/defines/server/db_spec.rb +++ b/spec/defines/server/db_spec.rb @@ -3,18 +3,7 @@ require 'spec_helper' describe 'postgresql::server::db' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/defines/server/default_privileges_spec.rb b/spec/defines/server/default_privileges_spec.rb index 01222dae65..0c08cfdef4 100644 --- a/spec/defines/server/default_privileges_spec.rb +++ b/spec/defines/server/default_privileges_spec.rb @@ -3,36 +3,14 @@ require 'spec_helper' describe 'postgresql::server::default_privileges' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '9.0', 'major' => '9' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :title do 'test' end context 'with unsupported PostgreSQL version' do - let(:facts) do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'RedHat 7' let :params do { @@ -135,18 +113,7 @@ end context 'schemas on postgres < 10.0' do - let(:facts) do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '9.0', 'major' => '9' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 9' let :params do { @@ -166,18 +133,7 @@ end context 'schemas on postgres >= 10.0' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '10.0', 'major' => '10' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :params do { @@ -210,18 +166,7 @@ class { 'postgresql::server': } end context 'nested schemas are invalid' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '10.0', 'major' => '10' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :params do { diff --git a/spec/defines/server/extension_spec.rb b/spec/defines/server/extension_spec.rb index dc92b24054..268933716d 100644 --- a/spec/defines/server/extension_spec.rb +++ b/spec/defines/server/extension_spec.rb @@ -3,26 +3,14 @@ require 'spec_helper' describe 'postgresql::server::extension' do # rubocop:disable RSpec/MultipleDescribes + include_examples 'Debian 11' + let :pre_condition do "class { 'postgresql::server': } postgresql::server::database { 'template_postgis': template => 'template1', }" end - - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end - let(:title) { 'postgis' } let(:params) do { @@ -120,26 +108,14 @@ end describe 'postgresql::server::extension' do + include_examples 'Debian 10' + let :pre_condition do "class { 'postgresql::server': } postgresql::server::database { 'template_postgis2': template => 'template1', }" end - - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '10.0', 'major' => '10' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end - let(:title) { 'postgis_db2' } let(:params) do { @@ -161,18 +137,7 @@ end describe 'postgresql::server::extension' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '10.0', 'major' => '10' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 10' let(:title) { 'pg_repack' } let(:params) do diff --git a/spec/defines/server/grant_role_spec.rb b/spec/defines/server/grant_role_spec.rb index a4c0b99abe..359d13cfec 100644 --- a/spec/defines/server/grant_role_spec.rb +++ b/spec/defines/server/grant_role_spec.rb @@ -3,23 +3,12 @@ require 'spec_helper' describe 'postgresql::server::grant_role' do + include_examples 'Debian 11' + let :pre_condition do "class { 'postgresql::server': }" end - let(:facts) do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end - let(:title) { 'test' } let(:params) do diff --git a/spec/defines/server/grant_spec.rb b/spec/defines/server/grant_spec.rb index c3586d004f..508a24747e 100644 --- a/spec/defines/server/grant_spec.rb +++ b/spec/defines/server/grant_spec.rb @@ -3,18 +3,7 @@ require 'spec_helper' describe 'postgresql::server::grant' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/defines/server/pg_hba_rule_spec.rb b/spec/defines/server/pg_hba_rule_spec.rb index 0bef824323..28b985a001 100644 --- a/spec/defines/server/pg_hba_rule_spec.rb +++ b/spec/defines/server/pg_hba_rule_spec.rb @@ -3,18 +3,7 @@ require 'spec_helper' describe 'postgresql::server::pg_hba_rule' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :title do 'test' end diff --git a/spec/defines/server/pg_ident_rule_spec.rb b/spec/defines/server/pg_ident_rule_spec.rb index 59dffbfc5b..107e7e6191 100644 --- a/spec/defines/server/pg_ident_rule_spec.rb +++ b/spec/defines/server/pg_ident_rule_spec.rb @@ -3,18 +3,7 @@ require 'spec_helper' describe 'postgresql::server::pg_ident_rule' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :title do 'test' end diff --git a/spec/defines/server/reassign_owned_by_spec.rb b/spec/defines/server/reassign_owned_by_spec.rb index 227d621bbd..db6e68a114 100644 --- a/spec/defines/server/reassign_owned_by_spec.rb +++ b/spec/defines/server/reassign_owned_by_spec.rb @@ -3,18 +3,7 @@ require 'spec_helper' describe 'postgresql::server::reassign_owned_by' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/defines/server/recovery_spec.rb b/spec/defines/server/recovery_spec.rb index 4167508954..e8ab5c9b08 100644 --- a/spec/defines/server/recovery_spec.rb +++ b/spec/defines/server/recovery_spec.rb @@ -3,18 +3,7 @@ require 'spec_helper' describe 'postgresql::server::recovery' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let(:title) do 'test' end diff --git a/spec/defines/server/role_spec.rb b/spec/defines/server/role_spec.rb index f4a614d1ce..19c649ee22 100644 --- a/spec/defines/server/role_spec.rb +++ b/spec/defines/server/role_spec.rb @@ -3,18 +3,7 @@ require 'spec_helper' describe 'postgresql::server::role' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/defines/server/schema_spec.rb b/spec/defines/server/schema_spec.rb index 817de21cba..8da588d67c 100644 --- a/spec/defines/server/schema_spec.rb +++ b/spec/defines/server/schema_spec.rb @@ -3,18 +3,7 @@ require 'spec_helper' describe 'postgresql::server::schema' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/defines/server/table_grant_spec.rb b/spec/defines/server/table_grant_spec.rb index b8b5c9f811..0fb0b86983 100644 --- a/spec/defines/server/table_grant_spec.rb +++ b/spec/defines/server/table_grant_spec.rb @@ -3,18 +3,7 @@ require 'spec_helper' describe 'postgresql::server::table_grant' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/defines/server/tablespace_spec.rb b/spec/defines/server/tablespace_spec.rb index e8dd9dd5bb..f2dbfff732 100644 --- a/spec/defines/server/tablespace_spec.rb +++ b/spec/defines/server/tablespace_spec.rb @@ -3,18 +3,7 @@ require 'spec_helper' describe 'postgresql::server::tablespace' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - kernel: 'Linux', - id: 'root', - path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } - end + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/defines/validate_db_connection_spec.rb b/spec/defines/validate_db_connection_spec.rb index 4777f37ccc..757b41b040 100644 --- a/spec/defines/validate_db_connection_spec.rb +++ b/spec/defines/validate_db_connection_spec.rb @@ -3,15 +3,7 @@ require 'spec_helper' describe 'postgresql::validate_db_connection' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/spec_helper_local.rb b/spec/spec_helper_local.rb index a8c1eb75b5..c798be50d8 100644 --- a/spec/spec_helper_local.rb +++ b/spec/spec_helper_local.rb @@ -91,3 +91,99 @@ def param(type, title, param) .and_raise_error(StandardError) end end + +shared_context 'Debian 9' do + let(:facts) { on_supported_os['debian-9-x86_64'].merge(service_provider: 'systemd') } +end + +shared_context 'Debian 10' do + let(:facts) { on_supported_os['debian-10-x86_64'].merge(service_provider: 'systemd') } +end + +shared_context 'Debian 11' do + let(:facts) { on_supported_os['debian-11-x86_64'].merge(service_provider: 'systemd') } +end + +shared_context 'Ubuntu 18.04' do + let(:facts) { on_supported_os['ubuntu-18.04-x86_64'].merge(service_provider: 'systemd') } +end + +shared_context 'RedHat 6' do + let(:facts) { on_supported_os['redhat-6-x86_64'].merge(service_provider: 'redhat') } +end + +shared_context 'RedHat 7' do + let(:facts) { on_supported_os['redhat-7-x86_64'].merge(service_provider: 'systemd') } +end + +shared_context 'RedHat 8' do + let(:facts) { on_supported_os['redhat-8-x86_64'].merge(service_provider: 'systemd') } +end + +shared_context 'Fedora 33' do + let(:facts) do + { + kernel: 'Linux', + id: 'root', + path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', + selinux: true, + os: { + 'architecture' => 'x86_64', + 'family' => 'RedHat', + 'hardware' => 'x86_64', + 'name' => 'Fedora', + 'release' => { + 'full' => '33', + 'major' => '33', + 'minor' => '33', + }, + selinux: { 'enabled' => true }, + }, + operatingsystem: 'Fedora', + operatingsystemrelease: '33', + service_provider: 'systemd', + } + end +end + +shared_context 'Amazon 1' do + let :facts do + { + os: { + family: 'RedHat', + name: 'Amazon', + release: { + 'full' => '1.0', + 'major' => '1', + }, + selinux: { 'enabled' => true }, + }, + kernel: 'Linux', + id: 'root', + path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', + selinux: true, + service_provider: 'redhat', + } + end +end + +shared_context 'Gentoo' do + let :facts do + { + os: { + family: 'Gentoo', + name: 'Gentoo', + release: { + 'full' => 'unused', + 'major' => 'unused', + }, + selinux: { 'enabled' => false }, + }, + kernel: 'Linux', + id: 'root', + path: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', + selinux: false, + service_provider: 'openrc', + } + end +end