require 'spec_helper'
describe 'apt', :type => :class do
+ let(:facts) { { :lsbdistid => 'Debian' } }
let :default_params do
{
:disable_keys => :undef,
:purge_sources_list => true,
:purge_sources_list_d => true,
},
+ {
+ :purge_preferences => true,
+ :purge_preferences_d => true,
+ },
{
:disable_keys => false
}
end
end
- it { should include_class("apt::params") }
-
- it { should contain_package("python-software-properties") }
+ it { should contain_class("apt::params") }
it {
if param_hash[:purge_sources_list]
'ensure' => "present",
'owner' => "root",
'group' => "root",
- 'mode' => 644,
+ 'mode' => "0644",
"content" => "# Repos managed by puppet.\n"
})
else
'ensure' => "present",
'owner' => "root",
'group' => "root",
- 'mode' => 644,
+ 'mode' => "0644",
'content' => nil
})
end
'owner' => "root",
'group' => "root",
'purge' => true,
- 'recurse' => true
+ 'recurse' => true,
+ 'notify' => 'Exec[apt_update]'
})
else
should create_file("sources.list.d").with({
'owner' => "root",
'group' => "root",
'purge' => false,
- 'recurse' => false
+ 'recurse' => false,
+ 'notify' => 'Exec[apt_update]'
+ })
+ end
+ }
+ it {
+ if param_hash[:purge_preferences]
+ should create_file('apt-preferences').with({
+ :ensure => 'present',
+ :path => '/etc/apt/preferences',
+ :owner => 'root',
+ :group => 'root',
+ :mode => '0644',
+ :content => /Explanation/,
+ })
+ else
+ should create_file('apt-preferences').with({
+ :ensure => 'present',
+ :path => '/etc/apt/preferences',
+ :owner => 'root',
+ :group => 'root',
+ :mode => '0644',
+ :content => nil,
+ })
+ end
+ }
+
+ it {
+ if param_hash[:purge_preferences_d]
+ should create_file("preferences.d").with({
+ 'path' => "/etc/apt/preferences.d",
+ 'ensure' => "directory",
+ 'owner' => "root",
+ 'group' => "root",
+ 'purge' => true,
+ 'recurse' => true,
+ })
+ else
+ should create_file("preferences.d").with({
+ 'path' => "/etc/apt/preferences.d",
+ 'ensure' => "directory",
+ 'owner' => "root",
+ 'group' => "root",
+ 'purge' => false,
+ 'recurse' => false,
})
end
}
it {
should contain_exec("apt_update").with({
'command' => "/usr/bin/apt-get update",
- 'subscribe' => ["File[sources.list]", "File[sources.list.d]"],
'refreshonly' => refresh_only_apt_update
})
}
if param_hash[:proxy_host]
should contain_file('configure-apt-proxy').with(
'path' => '/etc/apt/apt.conf.d/proxy',
- 'content' => "Acquire::http::Proxy \"http://#{param_hash[:proxy_host]}:#{param_hash[:proxy_port]}\";"
+ 'content' => "Acquire::http::Proxy \"http://#{param_hash[:proxy_host]}:#{param_hash[:proxy_port]}\";",
+ 'notify' => "Exec[apt_update]"
)
else
- should_not contain_file('configure_apt_proxy')
+ should contain_file('configure-apt-proxy').with(
+ 'path' => '/etc/apt/apt.conf.d/proxy',
+ 'notify' => 'Exec[apt_update]',
+ 'ensure' => 'absent'
+ )
end
}
end
end
end
-
- describe "it should not error if package['python-software-properties'] is already defined" do
- let(:pre_condition) { 'package { "python-software-properties": }->Class["Apt"]' }
- it { should contain_package("python-software-properties") }
- end
end