diff --git a/lib/puppet/functions/postgresql/postgresql_password.rb b/lib/puppet/functions/postgresql/postgresql_password.rb index 89de4b9d9e..ed9265dea8 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' @@ -42,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) @@ -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/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' diff --git a/spec/unit/classes/client_spec.rb b/spec/classes/client_spec.rb similarity index 89% rename from spec/unit/classes/client_spec.rb rename to spec/classes/client_spec.rb index a01311f9c7..87f5f34604 100644 --- a/spec/unit/classes/client_spec.rb +++ b/spec/classes/client_spec.rb @@ -2,16 +2,8 @@ require 'spec_helper' -describe 'postgresql::client', type: :class do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end +describe 'postgresql::client' do + include_examples 'Debian 11' describe 'with parameters' do let :params do diff --git a/spec/unit/classes/globals_spec.rb b/spec/classes/globals_spec.rb similarity index 75% rename from spec/unit/classes/globals_spec.rb rename to spec/classes/globals_spec.rb index 1ad320c5dd..4e994d91cb 100644 --- a/spec/unit/classes/globals_spec.rb +++ b/spec/classes/globals_spec.rb @@ -2,24 +2,9 @@ require 'spec_helper' -describe 'postgresql::globals', type: :class 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 +describe 'postgresql::globals' do + 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/unit/classes/lib/devel_spec.rb b/spec/classes/lib/devel_spec.rb similarity index 56% rename from spec/unit/classes/lib/devel_spec.rb rename to spec/classes/lib/devel_spec.rb index e3cb02e0f6..7e5e3fa9f4 100644 --- a/spec/unit/classes/lib/devel_spec.rb +++ b/spec/classes/lib/devel_spec.rb @@ -2,16 +2,8 @@ require 'spec_helper' -describe 'postgresql::lib::devel', type: :class do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end +describe 'postgresql::lib::devel' do + 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/unit/classes/lib/java_spec.rb b/spec/classes/lib/java_spec.rb similarity index 68% rename from spec/unit/classes/lib/java_spec.rb rename to spec/classes/lib/java_spec.rb index c556dfec86..0e0797d4e1 100644 --- a/spec/unit/classes/lib/java_spec.rb +++ b/spec/classes/lib/java_spec.rb @@ -2,17 +2,9 @@ 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 - { - 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 new file mode 100644 index 0000000000..3acd014da0 --- /dev/null +++ b/spec/classes/lib/perl_spec.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe 'postgresql::lib::perl' do + describe 'on redhat 8' do + include_examples 'RedHat 8' + + it { + is_expected.to contain_package('perl-DBD-Pg').with( + name: 'perl-DBD-Pg', + ensure: 'present', + ) + } + end + + describe 'on debian 11' do + include_examples 'Debian 11' + + it { + is_expected.to contain_package('perl-DBD-Pg').with( + name: 'libdbd-pg-perl', + ensure: 'present', + ) + } + end +end diff --git a/spec/unit/classes/lib/pgdocs_spec.rb b/spec/classes/lib/pgdocs_spec.rb similarity index 73% rename from spec/unit/classes/lib/pgdocs_spec.rb rename to spec/classes/lib/pgdocs_spec.rb index f72f4a94cb..febce3b57e 100644 --- a/spec/unit/classes/lib/pgdocs_spec.rb +++ b/spec/classes/lib/pgdocs_spec.rb @@ -2,17 +2,9 @@ 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 - { - 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 new file mode 100644 index 0000000000..87af71b71c --- /dev/null +++ b/spec/classes/lib/python_spec.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe 'postgresql::lib::python' do + describe 'on redhat 7' do + include_examples 'RedHat 7' + + it { + is_expected.to contain_package('python-psycopg2').with( + name: 'python-psycopg2', + ensure: 'present', + ) + } + end + + describe 'on redhat 8' do + include_examples 'RedHat 8' + + it { + is_expected.to contain_package('python-psycopg2').with( + name: 'python3-psycopg2', + ensure: 'present', + ) + } + end + + describe 'on debian 11' do + include_examples 'Debian 11' + + it { + is_expected.to contain_package('python-psycopg2').with( + name: 'python-psycopg2', + ensure: 'present', + ) + } + end +end diff --git a/spec/classes/params_spec.rb b/spec/classes/params_spec.rb new file mode 100644 index 0000000000..8fc61e3e34 --- /dev/null +++ b/spec/classes/params_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe 'postgresql::params' do + on_supported_os.each do |os, os_facts| + context "on #{os}" do + let(:facts) { os_facts } + + 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 new file mode 100644 index 0000000000..23f97a6db5 --- /dev/null +++ b/spec/classes/repo_spec.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe 'postgresql::repo' do + include_examples 'Debian 11' + + describe 'with no parameters' do + it 'instantiates apt_postgresql_org class' do + is_expected.to contain_class('postgresql::repo::apt_postgresql_org') + end + end +end diff --git a/spec/unit/classes/server/config_spec.rb b/spec/classes/server/config_spec.rb similarity index 67% rename from spec/unit/classes/server/config_spec.rb rename to spec/classes/server/config_spec.rb index a1ce20efab..55fbf665ce 100644 --- a/spec/unit/classes/server/config_spec.rb +++ b/spec/classes/server/config_spec.rb @@ -2,34 +2,13 @@ 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 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/unit/classes/server/contrib_spec.rb b/spec/classes/server/contrib_spec.rb similarity index 54% rename from spec/unit/classes/server/contrib_spec.rb rename to spec/classes/server/contrib_spec.rb index 33f11c9d30..4092801c30 100644 --- a/spec/unit/classes/server/contrib_spec.rb +++ b/spec/classes/server/contrib_spec.rb @@ -2,27 +2,13 @@ require 'spec_helper' -describe 'postgresql::server::contrib', type: :class do +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/unit/classes/server/initdb_spec.rb b/spec/classes/server/initdb_spec.rb similarity index 60% rename from spec/unit/classes/server/initdb_spec.rb rename to spec/classes/server/initdb_spec.rb index 9b4f1a59c9..50ba8c853b 100644 --- a/spec/unit/classes/server/initdb_spec.rb +++ b/spec/classes/server/initdb_spec.rb @@ -2,26 +2,13 @@ require 'spec_helper' -describe 'postgresql::server::initdb', type: :class do +describe 'postgresql::server::initdb' do let(:pre_condition) do 'include postgresql::server' 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/unit/classes/server/plperl_spec.rb b/spec/classes/server/plperl_spec.rb similarity index 74% rename from spec/unit/classes/server/plperl_spec.rb rename to spec/classes/server/plperl_spec.rb index ff2c26170b..6df41c2cd8 100644 --- a/spec/unit/classes/server/plperl_spec.rb +++ b/spec/classes/server/plperl_spec.rb @@ -2,19 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::plperl', type: :class 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 +describe 'postgresql::server::plperl' do + include_examples 'Debian 11' let :pre_condition do "class { 'postgresql::server': }" diff --git a/spec/unit/classes/server/plpython_spec.rb b/spec/classes/server/plpython_spec.rb similarity index 71% rename from spec/unit/classes/server/plpython_spec.rb rename to spec/classes/server/plpython_spec.rb index e98071f307..defb4bb31e 100644 --- a/spec/unit/classes/server/plpython_spec.rb +++ b/spec/classes/server/plpython_spec.rb @@ -2,21 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::plpython', type: :class 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 +describe 'postgresql::server::plpython' do + include_examples 'RedHat 8' let :pre_condition do "class { 'postgresql::server': }" diff --git a/spec/unit/classes/server/postgis_spec.rb b/spec/classes/server/postgis_spec.rb similarity index 70% rename from spec/unit/classes/server/postgis_spec.rb rename to spec/classes/server/postgis_spec.rb index 814387849c..69c8d95f8d 100644 --- a/spec/unit/classes/server/postgis_spec.rb +++ b/spec/classes/server/postgis_spec.rb @@ -2,24 +2,12 @@ require 'spec_helper' -describe 'postgresql::server::postgis', type: :class do +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/unit/classes/server/service_spec.rb b/spec/classes/server/service_spec.rb similarity index 59% rename from spec/unit/classes/server/service_spec.rb rename to spec/classes/server/service_spec.rb index ad81957c88..1fa6f5ab8d 100644 --- a/spec/unit/classes/server/service_spec.rb +++ b/spec/classes/server/service_spec.rb @@ -2,21 +2,13 @@ require 'spec_helper' -describe 'postgresql::server::service', type: :class do +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/unit/classes/server_spec.rb b/spec/classes/server_spec.rb similarity index 91% rename from spec/unit/classes/server_spec.rb rename to spec/classes/server_spec.rb index a44c96f924..7ebe246998 100644 --- a/spec/unit/classes/server_spec.rb +++ b/spec/classes/server_spec.rb @@ -2,31 +2,13 @@ require 'spec_helper' -describe 'postgresql::server', type: :class 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 +describe 'postgresql::server' do + 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/unit/defines/server/config_entry_spec.rb b/spec/defines/server/config_entry_spec.rb similarity index 54% rename from spec/unit/defines/server/config_entry_spec.rb rename to spec/defines/server/config_entry_spec.rb index 43e92ea1bf..b4a2cebac4 100644 --- a/spec/unit/defines/server/config_entry_spec.rb +++ b/spec/defines/server/config_entry_spec.rb @@ -2,25 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::config_entry', type: :define 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 +describe 'postgresql::server::config_entry' do + 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/unit/defines/server/database_grant_spec.rb b/spec/defines/server/database_grant_spec.rb similarity index 54% rename from spec/unit/defines/server/database_grant_spec.rb rename to spec/defines/server/database_grant_spec.rb index c021c84d8e..3951fa2b27 100644 --- a/spec/unit/defines/server/database_grant_spec.rb +++ b/spec/defines/server/database_grant_spec.rb @@ -2,19 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::database_grant', type: :define 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 +describe 'postgresql::server::database_grant' do + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/unit/defines/server/database_spec.rb b/spec/defines/server/database_spec.rb similarity index 87% rename from spec/unit/defines/server/database_spec.rb rename to spec/defines/server/database_spec.rb index 3290dc7ce4..158706001a 100644 --- a/spec/unit/defines/server/database_spec.rb +++ b/spec/defines/server/database_spec.rb @@ -2,19 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::database', type: :define 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 +describe 'postgresql::server::database' do + include_examples 'Debian 11' let :title do 'test' end diff --git a/spec/unit/defines/server/db_spec.rb b/spec/defines/server/db_spec.rb similarity index 75% rename from spec/unit/defines/server/db_spec.rb rename to spec/defines/server/db_spec.rb index ca5a2956b1..65677d9aa1 100644 --- a/spec/unit/defines/server/db_spec.rb +++ b/spec/defines/server/db_spec.rb @@ -2,19 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::db', type: :define 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 +describe 'postgresql::server::db' do + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/unit/defines/server/default_privileges_spec.rb b/spec/defines/server/default_privileges_spec.rb similarity index 87% rename from spec/unit/defines/server/default_privileges_spec.rb rename to spec/defines/server/default_privileges_spec.rb index d56b79f851..0c08cfdef4 100644 --- a/spec/unit/defines/server/default_privileges_spec.rb +++ b/spec/defines/server/default_privileges_spec.rb @@ -2,37 +2,15 @@ require 'spec_helper' -describe 'postgresql::server::default_privileges', type: :define 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 +describe 'postgresql::server::default_privileges' do + 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/unit/defines/server/extension_spec.rb b/spec/defines/server/extension_spec.rb similarity index 86% rename from spec/unit/defines/server/extension_spec.rb rename to spec/defines/server/extension_spec.rb index 44454e8216..268933716d 100644 --- a/spec/unit/defines/server/extension_spec.rb +++ b/spec/defines/server/extension_spec.rb @@ -2,27 +2,15 @@ require 'spec_helper' -describe 'postgresql::server::extension', type: :define do # rubocop:disable RSpec/MultipleDescribes +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 { @@ -119,27 +107,15 @@ end end -describe 'postgresql::server::extension', type: :define do +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 { @@ -160,19 +136,8 @@ end end -describe 'postgresql::server::extension', type: :define 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 +describe 'postgresql::server::extension' do + include_examples 'Debian 10' let(:title) { 'pg_repack' } let(:params) do diff --git a/spec/unit/defines/server/grant_role_spec.rb b/spec/defines/server/grant_role_spec.rb similarity index 91% rename from spec/unit/defines/server/grant_role_spec.rb rename to spec/defines/server/grant_role_spec.rb index a655c61ebe..359d13cfec 100644 --- a/spec/unit/defines/server/grant_role_spec.rb +++ b/spec/defines/server/grant_role_spec.rb @@ -2,24 +2,13 @@ require 'spec_helper' -describe 'postgresql::server::grant_role', type: :define do +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/unit/defines/server/grant_spec.rb b/spec/defines/server/grant_spec.rb similarity index 97% rename from spec/unit/defines/server/grant_spec.rb rename to spec/defines/server/grant_spec.rb index e2d12d5e0e..508a24747e 100644 --- a/spec/unit/defines/server/grant_spec.rb +++ b/spec/defines/server/grant_spec.rb @@ -2,19 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::grant', type: :define 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 +describe 'postgresql::server::grant' do + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/unit/defines/server/pg_hba_rule_spec.rb b/spec/defines/server/pg_hba_rule_spec.rb similarity index 93% rename from spec/unit/defines/server/pg_hba_rule_spec.rb rename to spec/defines/server/pg_hba_rule_spec.rb index ed0c6fa926..28b985a001 100644 --- a/spec/unit/defines/server/pg_hba_rule_spec.rb +++ b/spec/defines/server/pg_hba_rule_spec.rb @@ -2,19 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::pg_hba_rule', type: :define 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 +describe 'postgresql::server::pg_hba_rule' do + include_examples 'Debian 11' let :title do 'test' end diff --git a/spec/unit/defines/server/pg_ident_rule_spec.rb b/spec/defines/server/pg_ident_rule_spec.rb similarity index 79% rename from spec/unit/defines/server/pg_ident_rule_spec.rb rename to spec/defines/server/pg_ident_rule_spec.rb index 6da10929bd..107e7e6191 100644 --- a/spec/unit/defines/server/pg_ident_rule_spec.rb +++ b/spec/defines/server/pg_ident_rule_spec.rb @@ -2,19 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::pg_ident_rule', type: :define 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 +describe 'postgresql::server::pg_ident_rule' do + include_examples 'Debian 11' let :title do 'test' end diff --git a/spec/unit/defines/server/reassign_owned_by_spec.rb b/spec/defines/server/reassign_owned_by_spec.rb similarity index 72% rename from spec/unit/defines/server/reassign_owned_by_spec.rb rename to spec/defines/server/reassign_owned_by_spec.rb index 19ea8f1ad1..db6e68a114 100644 --- a/spec/unit/defines/server/reassign_owned_by_spec.rb +++ b/spec/defines/server/reassign_owned_by_spec.rb @@ -2,19 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::reassign_owned_by', type: :define 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 +describe 'postgresql::server::reassign_owned_by' do + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/unit/defines/server/recovery_spec.rb b/spec/defines/server/recovery_spec.rb similarity index 91% rename from spec/unit/defines/server/recovery_spec.rb rename to spec/defines/server/recovery_spec.rb index 1ee1c33833..e8ab5c9b08 100644 --- a/spec/unit/defines/server/recovery_spec.rb +++ b/spec/defines/server/recovery_spec.rb @@ -2,19 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::recovery', type: :define 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 +describe 'postgresql::server::recovery' do + include_examples 'Debian 11' let(:title) do 'test' end diff --git a/spec/unit/defines/server/role_spec.rb b/spec/defines/server/role_spec.rb similarity index 95% rename from spec/unit/defines/server/role_spec.rb rename to spec/defines/server/role_spec.rb index 53f2e93553..19c649ee22 100644 --- a/spec/unit/defines/server/role_spec.rb +++ b/spec/defines/server/role_spec.rb @@ -2,19 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::role', type: :define 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 +describe 'postgresql::server::role' do + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/unit/defines/server/schema_spec.rb b/spec/defines/server/schema_spec.rb similarity index 61% rename from spec/unit/defines/server/schema_spec.rb rename to spec/defines/server/schema_spec.rb index 9ca9a2391c..8da588d67c 100644 --- a/spec/unit/defines/server/schema_spec.rb +++ b/spec/defines/server/schema_spec.rb @@ -2,19 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::schema', type: :define 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 +describe 'postgresql::server::schema' do + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/unit/defines/server/table_grant_spec.rb b/spec/defines/server/table_grant_spec.rb similarity index 55% rename from spec/unit/defines/server/table_grant_spec.rb rename to spec/defines/server/table_grant_spec.rb index 5f9eb69cac..0fb0b86983 100644 --- a/spec/unit/defines/server/table_grant_spec.rb +++ b/spec/defines/server/table_grant_spec.rb @@ -2,19 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::table_grant', type: :define 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 +describe 'postgresql::server::table_grant' do + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/unit/defines/server/tablespace_spec.rb b/spec/defines/server/tablespace_spec.rb similarity index 77% rename from spec/unit/defines/server/tablespace_spec.rb rename to spec/defines/server/tablespace_spec.rb index 336a4f773b..f2dbfff732 100644 --- a/spec/unit/defines/server/tablespace_spec.rb +++ b/spec/defines/server/tablespace_spec.rb @@ -2,19 +2,8 @@ require 'spec_helper' -describe 'postgresql::server::tablespace', type: :define 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 +describe 'postgresql::server::tablespace' do + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/unit/defines/validate_db_connection_spec.rb b/spec/defines/validate_db_connection_spec.rb similarity index 88% rename from spec/unit/defines/validate_db_connection_spec.rb rename to spec/defines/validate_db_connection_spec.rb index 4143c73190..757b41b040 100644 --- a/spec/unit/defines/validate_db_connection_spec.rb +++ b/spec/defines/validate_db_connection_spec.rb @@ -2,16 +2,8 @@ require 'spec_helper' -describe 'postgresql::validate_db_connection', type: :define do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end +describe 'postgresql::validate_db_connection' do + include_examples 'Debian 11' let :title do 'test' diff --git a/spec/spec_helper_local.rb b/spec/spec_helper_local.rb index 5d9b349a80..c798be50d8 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', nil, 'scram-sha-256').and_return( - 'SCRAM-SHA-256$4096:YmFy$y1VOaTvvs4V3OECvMzre9FtgCZClGuBLVE6sNPsTKbs=:HwFqmSKbihSyHMqkhufOy++cWCFIoTRSg8y6YgeALzE=' + 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( - 'SCRAM-SHA-256$4096:c2FsdA==$zOt2zFfUQMbpQf3/vRnYB33QDK/L7APOBHniLy39j/4=:DcW5Jp8Do7wYhVp1f9aT0cyhUfzIAozGcvzXZj+M3YI=' + 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=', ) } it 'raises an error if there is only 1 argument' do @@ -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 diff --git a/spec/unit/classes/lib/perl_spec.rb b/spec/unit/classes/lib/perl_spec.rb deleted file mode 100644 index ce044db68a..0000000000 --- a/spec/unit/classes/lib/perl_spec.rb +++ /dev/null @@ -1,43 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -describe 'postgresql::lib::perl', type: :class do - describe 'on a redhat based os' do - let :facts do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { 'full' => '6.4', 'major' => '6' }, - }, - } - end - - it { - is_expected.to contain_package('perl-DBD-Pg').with( - name: 'perl-DBD-Pg', - ensure: 'present', - ) - } - end - - describe 'on a debian based os' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end - - it { - is_expected.to contain_package('perl-DBD-Pg').with( - name: 'libdbd-pg-perl', - ensure: 'present', - ) - } - end -end diff --git a/spec/unit/classes/lib/python_spec.rb b/spec/unit/classes/lib/python_spec.rb deleted file mode 100644 index a0b8941894..0000000000 --- a/spec/unit/classes/lib/python_spec.rb +++ /dev/null @@ -1,62 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -describe 'postgresql::lib::python', type: :class do - describe 'on a redhat based os' do - let :facts do - { - os: { - family: 'RedHat', - name: 'RedHat', - release: { 'full' => '6.4', 'major' => '6' }, - }, - } - end - - it { - is_expected.to contain_package('python-psycopg2').with( - name: 'python-psycopg2', - ensure: 'present', - ) - } - 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 - - it { - is_expected.to contain_package('python-psycopg2').with( - name: 'python3-psycopg2', - ensure: 'present', - ) - } - end - - describe 'on a debian based os' do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end - - it { - is_expected.to contain_package('python-psycopg2').with( - name: 'python-psycopg2', - ensure: 'present', - ) - } - end -end diff --git a/spec/unit/classes/params_spec.rb b/spec/unit/classes/params_spec.rb deleted file mode 100644 index fd46f92b6a..0000000000 --- a/spec/unit/classes/params_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -describe 'postgresql::params', type: :class do - let :facts do - { - os: { - family: 'Debian', - name: 'Debian', - release: { 'full' => '8.0', 'major' => '8' }, - }, - } - end - - it { is_expected.to contain_class('postgresql::params') } -end diff --git a/spec/unit/classes/repo_spec.rb b/spec/unit/classes/repo_spec.rb deleted file mode 100644 index 28e8419602..0000000000 --- a/spec/unit/classes/repo_spec.rb +++ /dev/null @@ -1,28 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -describe 'postgresql::repo', type: :class 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 - - describe 'with no parameters' do - it 'instantiates apt_postgresql_org class' do - is_expected.to contain_class('postgresql::repo::apt_postgresql_org') - end - end -end