summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorMorgan Haskel <morgan@puppetlabs.com>2015-04-15 08:52:17 -0700
committerMorgan Haskel <morgan@puppetlabs.com>2015-04-15 10:45:55 -0700
commit3d3c9680428b0a47f70b0edc8fa39b3003d193f9 (patch)
tree61cc6e19348c194bf117d7b667d2b3aa3ff0175b /spec
parented9062821f80ab5b47f903b2d11907be18128af3 (diff)
Fix to use the `mail` hash.
Testing unattended upgrades
Diffstat (limited to 'spec')
-rw-r--r--spec/classes/unattended_upgrades_spec.rb267
1 files changed, 243 insertions, 24 deletions
diff --git a/spec/classes/unattended_upgrades_spec.rb b/spec/classes/unattended_upgrades_spec.rb
index d53f7d5..a61873b 100644
--- a/spec/classes/unattended_upgrades_spec.rb
+++ b/spec/classes/unattended_upgrades_spec.rb
@@ -10,31 +10,250 @@ describe 'unattended_upgrades' do
:lsbrelease => '7.0.3',
} }
- it { should contain_package("unattended-upgrades") }
-
- it { should contain_apt__conf('unattended-upgrades').with({
- "require" => "Package[unattended-upgrades]",
- })
- }
-
- it { should contain_apt__conf('periodic').with({
- "require" => "Package[unattended-upgrades]",
- })
- }
-
- it {
- should create_file(file_unattended).with({
- "owner" => "root",
- "group" => "root",
- "mode" => "0644",
+ context 'with defaults' do
+ it { should contain_package('unattended-upgrades') }
+
+ it { should contain_apt__conf('unattended-upgrades').with({
+ 'require' => 'Package[unattended-upgrades]',
+ })
+ }
+
+ it { should contain_apt__conf('periodic').with({
+ 'require' => 'Package[unattended-upgrades]',
+ })
+ }
+
+ it {
+ should create_file(file_unattended).with({
+ 'owner' => 'root',
+ 'group' => 'root',
+ 'mode' => '0644',
+ })
+ }
+
+ it {
+ should create_file(file_periodic).with({
+ 'owner' => 'root',
+ 'group' => 'root',
+ 'mode' => '0644',
+ })
+ }
+
+ it { should contain_apt__conf('auto-upgrades').with({
+ 'ensure' => 'absent',
+ })
+ }
+ end
+
+ context 'set all the things' do
+ let :params do
+ {
+ :age => { 'min' => 1 },
+ :size => { 'max' => 1000 },
+ :update => 5,
+ :upgradeable_packages => {
+ 'download_only' => 5,
+ 'debdelta' => 5,
+ },
+ :upgrade => 5,
+ :auto => {
+ 'clean' => '5',
+ 'fix_interrupted_dpkg' => false,
+ 'remove' => false,
+ 'reboot' => false,
+ },
+ :verbose => 1,
+ :legacy_origin => true,
+ :origins => [ 'bananas' ],
+ :blacklist => [ 'foo', 'bar' ],
+ :minimal_steps => false,
+ :install_on_shutdown => true,
+ :mail => {
+ 'to' => 'root@localhost',
+ 'only_on_error' => true,
+ },
+ :dl_limit => 70,
+ }
+ end
+ it { should contain_package('unattended-upgrades') }
+
+ it { should contain_apt__conf('unattended-upgrades').with({
+ 'require' => 'Package[unattended-upgrades]',
+ })
+ }
+
+ it { should contain_apt__conf('periodic').with({
+ 'require' => 'Package[unattended-upgrades]',
})
- }
+ }
- it {
- should create_file(file_periodic).with({
- "owner" => "root",
- "group" => "root",
- "mode" => "0644",
+ it {
+ should create_file(file_unattended).with({
+ 'owner' => 'root',
+ 'group' => 'root',
+ 'mode' => '0644',
+ })
+ }
+
+ it {
+ should create_file(file_periodic).with({
+ 'owner' => 'root',
+ 'group' => 'root',
+ 'mode' => '0644',
+ })
+ }
+
+ it { should contain_apt__conf('auto-upgrades').with({
+ 'ensure' => 'absent',
})
- }
+ }
+
+ end
+
+ describe 'validation tests' do
+ context 'bad install_on_shutdown' do
+ let :params do
+ {
+ :install_on_shutdown => 'foo',
+ }
+ end
+ it do
+ expect {
+ subject.call
+ }.to raise_error(Puppet::Error, /not a boolean/)
+ end
+ end
+ context 'bad legacy_origin' do
+ let :params do
+ {
+ :legacy_origin => 'foo',
+ }
+ end
+ it do
+ expect {
+ subject.call
+ }.to raise_error(Puppet::Error, /not a boolean/)
+ end
+ end
+ context 'bad minimal_steps' do
+ let :params do
+ {
+ :minimal_steps => 'foo',
+ }
+ end
+ it do
+ expect {
+ subject.call
+ }.to raise_error(Puppet::Error, /not a boolean/)
+ end
+ end
+ context 'bad blacklist' do
+ let :params do
+ {
+ :blacklist => 'foo',
+ }
+ end
+ it do
+ expect {
+ subject.call
+ }.to raise_error(Puppet::Error, /not an Array/)
+ end
+ end
+ context 'bad origins' do
+ let :params do
+ {
+ :origins => 'foo',
+ }
+ end
+ it do
+ expect {
+ subject.call
+ }.to raise_error(Puppet::Error, /not an Array/)
+ end
+ end
+ context 'bad auto' do
+ let :params do
+ {
+ :auto => 'foo',
+ }
+ end
+ it do
+ expect {
+ subject.call
+ }.to raise_error(Puppet::Error, /not a Hash/)
+ end
+ end
+ context 'bad mail' do
+ let :params do
+ {
+ :mail => 'foo',
+ }
+ end
+ it do
+ expect {
+ subject.call
+ }.to raise_error(Puppet::Error, /not a Hash/)
+ end
+ end
+ context 'bad backup' do
+ let :params do
+ {
+ :backup => 'foo',
+ }
+ end
+ it do
+ expect {
+ subject.call
+ }.to raise_error(Puppet::Error, /not a Hash/)
+ end
+ end
+ context 'bad age' do
+ let :params do
+ {
+ :age => 'foo',
+ }
+ end
+ it do
+ expect {
+ subject.call
+ }.to raise_error(Puppet::Error, /not a Hash/)
+ end
+ end
+ context 'bad size' do
+ let :params do
+ {
+ :size => 'foo',
+ }
+ end
+ it do
+ expect {
+ subject.call
+ }.to raise_error(Puppet::Error, /not a Hash/)
+ end
+ end
+ context 'bad upgradeable_packages' do
+ let :params do
+ {
+ :upgradeable_packages => 'foo',
+ }
+ end
+ it do
+ expect {
+ subject.call
+ }.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' },
+ }
+ end
+ it do
+ expect {
+ subject.call
+ }.to raise_error(Puppet::Error, /not a boolean/)
+ end
+ end
+ end
end