require 'spec_helper'
describe 'apt', :type => :class do
+ let(:facts) { { :lsbdistid => 'Debian' } }
let :default_params do
{
- :disable_keys => false,
+ :disable_keys => :undef,
:always_apt_update => false,
- :purge => false
+ :purge_sources_list => false,
+ :purge_sources_list_d => false,
}
end
[{},
- {
+ {
:disable_keys => true,
:always_apt_update => true,
:proxy_host => true,
:proxy_port => '3128',
- :purge => true
+ :purge_sources_list => true,
+ :purge_sources_list_d => true,
+ },
+ {
+ :purge_preferences => true,
+ :purge_preferences_d => true,
+ },
+ {
+ :disable_keys => false
}
].each do |param_set|
describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
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]
+ if param_hash[:purge_sources_list]
should contain_file("sources.list").with({
'path' => "/etc/apt/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
}
it {
- if param_hash[:purge]
+ if param_hash[:purge_sources_list_d]
should create_file("sources.list.d").with({
'path' => "/etc/apt/sources.list.d",
'ensure' => "directory",
'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
})
}
it {
- if param_hash[:disable_keys]
- should contain_exec("make-apt-insecure").with({
- 'command' => '/bin/echo "APT::Get::AllowUnauthenticated 1;" >> /etc/apt/apt.conf.d/99unauth',
- 'creates' => '/etc/apt/apt.conf.d/99unauth'
+ if param_hash[:disable_keys] == true
+ should create_file("99unauth").with({
+ 'content' => "APT::Get::AllowUnauthenticated 1;\n",
+ 'ensure' => "present",
+ 'path' => "/etc/apt/apt.conf.d/99unauth"
})
- else
- should_not contain_exec("make-apt-insecure").with({
- 'command' => '/bin/echo "APT::Get::AllowUnauthenticated 1;" >> /etc/apt/apt.conf.d/99unauth',
- 'creates' => '/etc/apt/apt.conf.d/99unauth'
+ elsif param_hash[:disable_keys] == false
+ should create_file("99unauth").with({
+ 'ensure' => "absent",
+ 'path' => "/etc/apt/apt.conf.d/99unauth"
+ })
+ elsif param_hash[:disable_keys] != :undef
+ should_not create_file("99unauth").with({
+ 'path' => "/etc/apt/apt.conf.d/99unauth"
})
end
}
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