postgres-formula/test/integration/repo/controls/repository.rb

53 lines
1.6 KiB
Ruby

# frozen_string_literal: true
case platform.family
when 'redhat', 'fedora', 'suse'
os_name_repo_file = {
'opensuse' => '/etc/zypp/repos.d/pgdg-sles-13.repo'
}
os_name_repo_file.default = '/etc/yum.repos.d/pgdg13.repo'
os_name_repo_url = {
'amazon' => 'https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-7-$basearch',
'fedora' => 'https://download.postgresql.org/pub/repos/yum/13/fedora/fedora-$releasever-$basearch',
'opensuse' => 'https://download.postgresql.org/pub/repos/zypp/13/suse/sles-$releasever-$basearch'
}
os_name_repo_url.default = 'https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-$releasever-$basearch'
repo_url = os_name_repo_url[platform.name]
repo_file = os_name_repo_file[platform.name]
when 'debian'
repo_keyring = '/usr/share/postgresql-common/pgdg/apt.postgresql.org.gpg'
repo_file = '/etc/apt/sources.list.d/pgdg.list'
# rubocop:disable Layout/LineLength
repo_url = "deb [signed-by=#{repo_keyring}] http://apt.postgresql.org/pub/repos/apt #{system.platform[:codename]}-pgdg main"
# rubocop:enable Layout/LineLength
end
control 'Postgresql repository keyring' do
title 'should be installed'
only_if('Requirement for Debian family') do
os.debian?
end
describe package('pgdg-keyring') do
it { should be_installed }
end
describe file(repo_keyring) do
it { should exist }
it { should be_owned_by 'root' }
it { should be_grouped_into 'root' }
its('mode') { should cmp '0644' }
end
end
control 'Postgresql repository' do
impact 1
title 'should be configured'
describe file(repo_file) do
its('content') { should include repo_url }
end
end