diff options
author | Alex Fisher <alex@linfratech.co.uk> | 2016-07-11 17:53:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-11 17:53:30 +0100 |
commit | 3f25181c7a1f90f87c39f9fc1bac503f66eac05c (patch) | |
tree | 10226c82c69c82c65ec37fa286556ccc9ad5d255 /spec | |
parent | b123117dfe0ef9f8225659a24c31d0bb276b2815 (diff) | |
parent | c9a7131191c41a5154b92dc5a18d347524d7dd36 (diff) |
Merge pull request #65 from voxpupuli/modulesync
Modulesync 0.9.1
Diffstat (limited to 'spec')
-rw-r--r-- | spec/classes/unattended_upgrades_spec.rb | 463 | ||||
-rw-r--r-- | spec/spec_helper.rb | 13 |
2 files changed, 261 insertions, 215 deletions
diff --git a/spec/classes/unattended_upgrades_spec.rb b/spec/classes/unattended_upgrades_spec.rb index f6e74af..c3b9673 100644 --- a/spec/classes/unattended_upgrades_spec.rb +++ b/spec/classes/unattended_upgrades_spec.rb @@ -1,48 +1,56 @@ require 'spec_helper' +# rubocop:disable Style/RegexpLiteral describe 'unattended_upgrades' do let(:file_unattended) { '/etc/apt/apt.conf.d/50unattended-upgrades' } let(:file_periodic) { '/etc/apt/apt.conf.d/10periodic' } let(:file_options) { '/etc/apt/apt.conf.d/10options' } - let(:facts) { { - osfamily: 'Debian', - lsbdistid: 'Debian', - lsbdistcodename: 'wheezy', - lsbrelease: '7.0.3', - } } - let(:pre_condition) { + let(:facts) do + { + osfamily: 'Debian', + lsbdistid: 'Debian', + lsbdistcodename: 'wheezy', + lsbrelease: '7.0.3' + } + end + let(:pre_condition) do 'include ::apt' - } + end context 'with defaults on Debian' do - it { should contain_package('unattended-upgrades') } + it do + should contain_package('unattended-upgrades') + should compile.with_all_deps + should contain_class('unattended_upgrades::params') + should contain_class('unattended_upgrades') + end - it { + it do should contain_apt__conf('unattended-upgrades').with( require: 'Package[unattended-upgrades]', - notify_update: false, + notify_update: false ) - } + end - it { + it do should contain_apt__conf('periodic').with( require: 'Package[unattended-upgrades]', - notify_update: false, + notify_update: false ) - } + end - it { + it do should contain_apt__conf('options').with( require: 'Package[unattended-upgrades]', - notify_update: false, + notify_update: false ) - } + end - it { + it do should create_file(file_unattended).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ).with_content( /Unattended-Upgrade::Origins-Pattern {/ ).with_content( @@ -66,13 +74,13 @@ describe 'unattended_upgrades' do ).without_content( /Acquire::http::Dl-Limit/ ) - } + end - it { + it do should create_file(file_periodic).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ).with_content( /APT::Periodic::Enable "1";/ ).with_content( @@ -98,17 +106,18 @@ describe 'unattended_upgrades' do ).with_content( /APT::Periodic::Verbose "0";/ ) - } + end - it { should contain_apt__conf('auto-upgrades').with( - ensure: 'absent', - ) - } - it { + it do + should contain_apt__conf('auto-upgrades').with( + ensure: 'absent' + ) + end + it do should create_file(file_options).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ).with_content( /^Dpkg::Options\s{/ ).with_content( @@ -120,21 +129,23 @@ describe 'unattended_upgrades' do ).without_content( /\"--force-confmiss\";/ ) - } + end end context 'with defaults on Debian 6 Squeeze' do - let(:facts) { { - osfamily: 'Debian', - lsbdistid: 'Debian', - lsbdistcodename: 'squeeze', - lsbdistrelease: '6.0.10', - } } - it { + let(:facts) do + { + osfamily: 'Debian', + lsbdistid: 'Debian', + lsbdistcodename: 'squeeze', + lsbdistrelease: '6.0.10' + } + end + it do should create_file(file_unattended).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ).with_content( # This section varies for different releases /\Unattended-Upgrade::Allowed-Origins\ {\n @@ -143,21 +154,23 @@ describe 'unattended_upgrades' do \t"\${distro_id}\ \${distro_codename}-lts";\n };/x ) - } + end end context 'with defaults on Debian 7 Wheezy' do - let(:facts) { { - osfamily: 'Debian', - lsbdistid: 'Debian', - lsbdistcodename: 'wheezy', - lsbdistrelease: '7.1', - } } - it { + let(:facts) do + { + osfamily: 'Debian', + lsbdistid: 'Debian', + lsbdistcodename: 'wheezy', + lsbdistrelease: '7.1' + } + end + it do should create_file(file_unattended).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ).with_content( # This section varies for different releases /\Unattended-Upgrade::Origins-Pattern\ {\n @@ -165,198 +178,216 @@ describe 'unattended_upgrades' do \t"origin=Debian,archive=oldstable,label=Debian-Security";\n };/x ) - } + end end context 'with defaults on Debian 8 Jessie' do - let(:facts) { { - osfamily: 'Debian', - lsbdistid: 'Debian', - lsbdistcodename: 'jessie', - lsbdistrelease: '8.2', - } } - it { + let(:facts) do + { + osfamily: 'Debian', + lsbdistid: 'Debian', + lsbdistcodename: 'jessie', + lsbdistrelease: '8.2' + } + end + it do should create_file(file_unattended).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ).with_content( # This section varies for different releases /\Unattended-Upgrade::Origins-Pattern\ {\n \t"origin=Debian,codename=\${distro_codename},label=Debian-Security";\n };/x ) - } + end end context 'with defaults on Ubuntu 12.04LTS Precise Pangolin' do - let(:facts) { { - osfamily: 'Debian', - lsbdistid: 'Ubuntu', - lsbdistcodename: 'precise', - lsbrelease: '12.04', - lsbdistrelease: '12.04', - } } - it { + let(:facts) do + { + osfamily: 'Debian', + lsbdistid: 'Ubuntu', + lsbdistcodename: 'precise', + lsbrelease: '12.04', + lsbdistrelease: '12.04' + } + end + it do should create_file(file_unattended).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ).with_content( # This is the only section that's different for Ubuntu compared to Debian /\Unattended-Upgrade::Allowed-Origins\ {\n \t"\${distro_id}\:\${distro_codename}-security";\n };/x ) - } + end end context 'with defaults on Ubuntu 14.04LTS Trusty Tahr' do - let(:facts) { { - osfamily: 'Debian', - lsbdistid: 'Ubuntu', - lsbdistcodename: 'trusty', - lsbrelease: '14.04', - lsbdistrelease: '14.04', - } } - it { + let(:facts) do + { + osfamily: 'Debian', + lsbdistid: 'Ubuntu', + lsbdistcodename: 'trusty', + lsbrelease: '14.04', + lsbdistrelease: '14.04' + } + end + it do should create_file(file_unattended).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ).with_content( # This is the only section that's different for Ubuntu compared to Debian /\Unattended-Upgrade::Allowed-Origins\ {\n \t"\${distro_id}\:\${distro_codename}-security";\n };/x ) - } + end end context 'with defaults on Ubuntu 15.04 Vivid Vervet' do - let(:facts) { { - osfamily: 'Debian', - lsbdistid: 'Ubuntu', - lsbdistcodename: 'vivid', - lsbrelease: '15.04', - lsbdistrelease: '15.04', - } } - it { + let(:facts) do + { + osfamily: 'Debian', + lsbdistid: 'Ubuntu', + lsbdistcodename: 'vivid', + lsbrelease: '15.04', + lsbdistrelease: '15.04' + } + end + it do should create_file(file_unattended).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ).with_content( # This is the only section that's different for Ubuntu compared to Debian /\Unattended-Upgrade::Allowed-Origins\ {\n \t"\${distro_id}\:\${distro_codename}-security";\n };/x ) - } + end end context 'with defaults on Ubuntu 15.10 Wily Werewolf' do - let(:facts) { { - osfamily: 'Debian', - lsbdistid: 'Ubuntu', - lsbdistcodename: 'wily', - lsbrelease: '15.10', - lsbdistrelease: '15.10', - } } - it { + let(:facts) do + { + osfamily: 'Debian', + lsbdistid: 'Ubuntu', + lsbdistcodename: 'wily', + lsbrelease: '15.10', + lsbdistrelease: '15.10' + } + end + it do should create_file(file_unattended).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ).with_content( # This is the only section that's different for Ubuntu compared to Debian /\Unattended-Upgrade::Allowed-Origins\ {\n \t"\${distro_id}\:\${distro_codename}-security";\n };/x ) - } + end end context 'with defaults on Raspbian' do - let(:facts) { { - osfamily: 'Debian', - lsbdistid: 'Raspbian', - lsbdistcodename: 'jessie', - lsbrelease: '8.0', - } } - it { + let(:facts) do + { + osfamily: 'Debian', + lsbdistid: 'Raspbian', + lsbdistcodename: 'jessie', + lsbrelease: '8.0' + } + end + it do should create_file(file_unattended).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ) - } + end end context 'with defaults on Linux Mint 13 Maya' do - let(:facts) { { - osfamily: 'Debian', - lsbdistid: 'LinuxMint', - lsbdistcodename: 'maya', - lsbdistrelease: '13', - lsbmajdistrelease: '13', - } } - it { + let(:facts) do + { + osfamily: 'Debian', + lsbdistid: 'LinuxMint', + lsbdistcodename: 'maya', + lsbdistrelease: '13', + lsbmajdistrelease: '13' + } + end + it do should create_file(file_unattended).with( 'owner' => 'root', 'group' => 'root', - 'mode' => '0644', + 'mode' => '0644' ).with_content( # This is the only section that's different for Ubuntu compared to Debian /\Unattended-Upgrade::Allowed-Origins\ {\n \t"Ubuntu\:precise-security";\n };/x ) - } + end end context 'with defaults on Linux Mint 17.3 Rosa' do - let(:facts) { { - osfamily: 'Debian', - lsbdistid: 'LinuxMint', - lsbdistcodename: 'rosa', - lsbdistrelease: '17.3', - lsbmajdistrelease: '17', - } } - it { + let(:facts) do + { + osfamily: 'Debian', + lsbdistid: 'LinuxMint', + lsbdistcodename: 'rosa', + lsbdistrelease: '17.3', + lsbmajdistrelease: '17' + } + end + it do should create_file(file_unattended).with( 'owner' => 'root', 'group' => 'root', - 'mode' => '0644', + 'mode' => '0644' ).with_content( # This is the only section that's different for Ubuntu compared to Debian /\Unattended-Upgrade::Allowed-Origins\ {\n \t"Ubuntu\:trusty-security";\n };/x ) - } + end end context 'with defaults on Linux Mint 18 Sarah' do - let(:facts) { { - osfamily: 'Debian', - lsbdistid: 'LinuxMint', - lsbdistcodename: 'sarah', - lsbdistrelease: '18', - lsbmajdistrelease: '18', - } } - it { + let(:facts) do + { + osfamily: 'Debian', + lsbdistid: 'LinuxMint', + lsbdistcodename: 'sarah', + lsbdistrelease: '18', + lsbmajdistrelease: '18' + } + end + it do should create_file(file_unattended).with( 'owner' => 'root', 'group' => 'root', - 'mode' => '0644', + 'mode' => '0644' ).with_content( # This is the only section that's different for Ubuntu compared to Debian /\Unattended-Upgrade::Allowed-Origins\ {\n \t"Ubuntu\:xenial-security";\n };/x ) - } + end end context 'set all the things' do @@ -367,7 +398,7 @@ describe 'unattended_upgrades' do update: 5, upgradeable_packages: { 'download_only' => 5, - 'debdelta' => 5, + 'debdelta' => 5 }, upgrade: 5, auto: { @@ -375,7 +406,7 @@ describe 'unattended_upgrades' do 'fix_interrupted_dpkg' => false, 'remove' => false, 'reboot' => true, - 'reboot_time' => '03:00', + 'reboot_time' => '03:00' }, verbose: 1, legacy_origin: true, @@ -385,7 +416,7 @@ describe 'unattended_upgrades' do install_on_shutdown: true, mail: { 'to' => 'root@localhost', - 'only_on_error' => true, + 'only_on_error' => true }, dl_limit: 70, random_sleep: 300, @@ -394,36 +425,38 @@ describe 'unattended_upgrades' do 'force_confdef' => false, 'force_confold' => false, 'force_confnew' => true, - 'force_confmiss' => true, + 'force_confmiss' => true } } end it { should contain_package('unattended-upgrades') } - it { should contain_apt__conf('unattended-upgrades').with( - require: 'Package[unattended-upgrades]', - notify_update: true, + it do + should contain_apt__conf('unattended-upgrades').with( + require: 'Package[unattended-upgrades]', + notify_update: true ) - } + end - it { should contain_apt__conf('periodic').with( - require: 'Package[unattended-upgrades]', - notify_update: true, + it do + should contain_apt__conf('periodic').with( + require: 'Package[unattended-upgrades]', + notify_update: true ) - } + end - it { + it do should contain_apt__conf('options').with( require: 'Package[unattended-upgrades]', - notify_update: true, + notify_update: true ) - } + end - it { + it do should create_file(file_unattended).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ).with_content( /Unattended-Upgrade::Allowed-Origins {\n\t"bananas";\n};/ ).with_content( @@ -447,13 +480,13 @@ describe 'unattended_upgrades' do ).with_content( /Acquire::http::Dl-Limit "70";/ ) - } + end - it { + it do should create_file(file_periodic).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ).with_content( /APT::Periodic::Enable "1";/ ).with_content( @@ -481,13 +514,13 @@ describe 'unattended_upgrades' do ).with_content( /APT::Periodic::RandomSleep "300";/ ) - } + end - it { + it do should create_file(file_options).with( owner: 'root', group: 'root', - mode: '0644', + mode: '0644' ).with_content( /^Dpkg::Options\s{/ ).without_content( @@ -499,217 +532,217 @@ describe 'unattended_upgrades' do ).with_content( /^\s+"--force-confmiss";/ ) - } - it { + end + it do should contain_apt__conf('auto-upgrades').with( - ensure: 'absent', + ensure: 'absent' ) - } + end end describe 'validation tests' do context 'bad install_on_shutdown' do let :params do { - install_on_shutdown: 'foo', + install_on_shutdown: 'foo' } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not a boolean/) + end.to raise_error(Puppet::Error, /not a boolean/) end end context 'bad legacy_origin' do let :params do { - legacy_origin: 'foo', + legacy_origin: 'foo' } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not a boolean/) + end.to raise_error(Puppet::Error, /not a boolean/) end end context 'bad minimal_steps' do let :params do { - minimal_steps: 'foo', + minimal_steps: 'foo' } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not a boolean/) + end.to raise_error(Puppet::Error, /not a boolean/) end end context 'bad blacklist' do let :params do { - blacklist: 'foo', + blacklist: 'foo' } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not an Array/) + end.to raise_error(Puppet::Error, /not an Array/) end end context 'bad origins' do let :params do { - origins: 'foo', + origins: 'foo' } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not an Array/) + end.to raise_error(Puppet::Error, /not an Array/) end end context 'bad auto' do let :params do { - auto: 'foo', + auto: 'foo' } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not a Hash/) + end.to raise_error(Puppet::Error, /not a Hash/) end end context 'bad mail' do let :params do { - mail: 'foo', + mail: 'foo' } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not a Hash/) + end.to raise_error(Puppet::Error, /not a Hash/) end end context 'bad backup' do let :params do { - backup: 'foo', + backup: 'foo' } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not a Hash/) + end.to raise_error(Puppet::Error, /not a Hash/) end end context 'bad age' do let :params do { - age: 'foo', + age: 'foo' } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not a Hash/) + end.to raise_error(Puppet::Error, /not a Hash/) end end context 'bad size' do let :params do { - size: 'foo', + size: 'foo' } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /to be an Integer/) + end.to raise_error(Puppet::Error, /to be an Integer/) end end context 'bad upgradeable_packages' do let :params do { - upgradeable_packages: 'foo', + upgradeable_packages: 'foo' } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not a Hash/) + end.to raise_error(Puppet::Error, /not a Hash/) end end context 'bad mail[\'only_on_error\']' do let :params do { - mail: { 'only_on_error' => 'foo' }, + mail: { 'only_on_error' => 'foo' } } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not a boolean/) + end.to raise_error(Puppet::Error, /not a boolean/) end end context 'bad options[\'force_confdef\']' do let :params do { - options: { 'force_confdef' => 'foo' }, + options: { 'force_confdef' => 'foo' } } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not a boolean/) + end.to raise_error(Puppet::Error, /not a boolean/) end end context 'bad options[\'force_confold\']' do let :params do { - options: { 'force_confold' => 'foo' }, + options: { 'force_confold' => 'foo' } } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not a boolean/) + end.to raise_error(Puppet::Error, /not a boolean/) end end context 'bad options[\'force_confnew\']' do let :params do { - options: { 'force_confnew' => 'foo' }, + options: { 'force_confnew' => 'foo' } } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not a boolean/) + end.to raise_error(Puppet::Error, /not a boolean/) end end context 'bad options[\'force_confmiss\']' do let :params do { - options: { 'force_confmiss' => 'foo' }, + options: { 'force_confmiss' => 'foo' } } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /not a boolean/) + end.to raise_error(Puppet::Error, /not a boolean/) end end context 'bad options[\'invalid_key\']' do let :params do { - options: { 'invalid_key' => true }, + options: { 'invalid_key' => true } } end it do - expect { + expect do subject.call - }.to raise_error(Puppet::Error, /invalid_key not a valid key/) + end.to raise_error(Puppet::Error, /invalid_key not a valid key/) end end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 0f53c4e..047b126 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,4 +1,17 @@ require 'puppetlabs_spec_helper/module_spec_helper' require 'rspec-puppet-facts' include RspecPuppetFacts + +RSpec.configure do |c| + c.default_facts = { + concat_basedir: '/tmp', + is_pe: false, + selinux_config_mode: 'disabled', + puppetversion: Puppet.version, + facterversion: Facter.version, + ipaddress: '172.16.254.254', + macaddress: 'AA:AA:AA:AA:AA:AA' + } +end + # vim: syntax=ruby |