Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test updates #4

Merged
merged 1 commit into from
Apr 17, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .fixtures.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ fixtures:
repositories:
apt:
repo: "https://github.com/puppetlabs/puppetlabs-apt.git"
ref: "db9daeb1831930f648b99e1867867ba6a071e68a"
ref: "2.0.0"
symlinks:
unattended_upgrades: "#{source_dir}"
14 changes: 14 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
language: ruby
sudo: false
bundler_args: --without system_tests
script: "bundle exec rake validate && bundle exec rake lint && bundle exec rake spec SPEC_OPTS='--format documentation'"
matrix:
fast_finish: true
include:
- rvm: 1.9.3
env: PUPPET_GEM_VERSION="~> 3.0"
- rvm: 2.0.0
env: PUPPET_GEM_VERSION="~> 3.0"
notifications:
email: false
267 changes: 243 additions & 24 deletions spec/classes/unattended_upgrades_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,250 @@
: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
6 changes: 3 additions & 3 deletions templates/unattended-upgrades.erb
Original file line number Diff line number Diff line change
Expand Up @@ -33,16 +33,16 @@ Unattended-Upgrade::MinimalSteps "<%= @minimal_steps.to_s %>";
// This will (obviously) make shutdown slower
Unattended-Upgrade::InstallOnShutdown "<%= @install_on_shutdown.to_s %>";

<% unless @mail_to.nil? %>
<% unless @mail['to'].nil? %>
// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed.
Unattended-Upgrade::Mail "<%= @mail_to %>";
Unattended-Upgrade::Mail "<%= @mail['to'] %>";

// Set this value to "true" to get emails only on errors. Default
// is to always send a mail if Unattended-Upgrade::Mail is set
Unattended-Upgrade::MailOnlyOnError "<%= @mail_only_on_error.to_s %>";
Unattended-Upgrade::MailOnlyOnError "<%= @mail['only_on_error'].to_s %>";
<% end %>

// Do automatic removal of new unused dependencies after the upgrade
Expand Down