# force a package from a specific release
define apt::force(
- $release = 'testing',
+ $release = false,
$version = false,
$timeout = 300
) {
# ppa.pp
define apt::ppa(
+ $ensure = 'present',
$release = $::lsbdistcodename,
$options = '-y'
) {
- $ensure = 'present'
include apt::params
include apt::update
end
end
+ context 'ensure' do
+ context 'present' do
+ it 'works without failure' do
+ pp = <<-EOS
+ include '::apt'
+ apt::ppa { 'ppa:canonical-kernel-team/ppa': ensure => present }
+ EOS
+
+ apply_manifest(pp, :catch_failures => true)
+ end
+
+ describe 'contains the source file' do
+ it 'contains a kernel ppa source' do
+ shell('ls /etc/apt/sources.list.d/canonical-kernel-team-ppa-*', :acceptable_exit_codes => [0])
+ end
+ end
+ end
+ end
+
+ context 'ensure' do
+ context 'absent' do
+ it 'works without failure' do
+ pp = <<-EOS
+ include '::apt'
+ apt::ppa { 'ppa:canonical-kernel-team/ppa': ensure => absent }
+ EOS
+
+ apply_manifest(pp, :catch_failures => true)
+ end
+
+ describe 'doesnt contain the source file' do
+ it 'fails' do
+ shell('ls /etc/apt/sources.list.d/canonical-kernel-team-ppa-*', :acceptable_exit_codes => [2])
+ end
+ end
+ end
+ end
+
context 'release' do
context 'precise' do
it 'works without failure' do
pp = <<-EOS
include '::apt'
apt::ppa { 'ppa:canonical-kernel-team/ppa':
+ ensure => present,
release => precise,
}
EOS
pp = <<-EOS
include '::apt'
apt::ppa { 'ppa:canonical-kernel-team/ppa':
+ ensure => present,
release => precise,
options => '-y',
}
it 'should work with no errors' do
pp = <<-EOS
include apt
- apt::force { 'vim': release => false, }
+ apt::force { 'vim': }
EOS
shell('apt-get remove -y vim')
it 'should work with no errors' do
pp = <<-EOS
include apt
- apt::force { 'vim': version => '1.1.1', release => false, }
+ apt::force { 'vim': version => '1.1.1' }
EOS
shell('apt-get remove -y vim')
it 'should work with no errors' do
pp = <<-EOS
include apt
- apt::force { 'vim': release => false, timeout => '1' }
+ apt::force { 'vim': timeout => '1' }
EOS
shell('apt-get clean')
let :default_params do
{
- :release => 'testing',
+ :release => false,
:version => false
}
end
let :params do
default_params
end
- it { should contain_exec("/usr/bin/apt-get -y -t #{params[:release]} install #{title}").with(
- :unless => "/usr/bin/test \$(/usr/bin/apt-cache policy -t #{params[:release]} #{title} | /bin/grep -E 'Installed|Candidate' | /usr/bin/uniq -s 14 | /usr/bin/wc -l) -eq 1",
+ it { should contain_exec("/usr/bin/apt-get -y install #{title}").with(
+ :unless => "/usr/bin/dpkg -s #{title} | grep -q 'Status: install'",
:timeout => '300'
) }
end
- describe "when specifying false release parameter" do
+ describe "when specifying release parameter" do
let :params do
- default_params.merge(:release => false)
+ default_params.merge(:release => 'testing')
end
- it { should contain_exec("/usr/bin/apt-get -y install #{title}").with(
- :unless => "/usr/bin/dpkg -s #{title} | grep -q 'Status: install'"
+ it { should contain_exec("/usr/bin/apt-get -y -t #{params[:release]} install #{title}").with(
+ :unless => "/usr/bin/test \$(/usr/bin/apt-cache policy -t #{params[:release]} #{title} | /bin/grep -E 'Installed|Candidate' | /usr/bin/uniq -s 14 | /usr/bin/wc -l) -eq 1"
) }
end
let :params do
default_params.merge(:version => '1')
end
- it { should contain_exec("/usr/bin/apt-get -y -t #{params[:release]} install #{title}=#{params[:version]}").with(
- :unless => "/usr/bin/apt-cache policy -t #{params[:release]} #{title} | /bin/grep -q 'Installed: #{params[:version]}'"
+ it { should contain_exec("/usr/bin/apt-get -y install #{title}=#{params[:version]}").with(
+ :unless => "/usr/bin/dpkg -s #{title} | grep -q 'Version: #{params[:version]}'"
) }
end
- describe "when specifying false release and version parameters" do
+ describe "when specifying release and version parameters" do
let :params do
default_params.merge(
- :release => false,
+ :release => 'testing',
:version => '1'
)
end
- it { should contain_exec("/usr/bin/apt-get -y install #{title}=1").with(
- :unless => "/usr/bin/dpkg -s #{title} | grep -q 'Version: #{params[:version]}'"
+ it { should contain_exec("/usr/bin/apt-get -y -t #{params[:release]} install #{title}=1").with(
+ :unless => "/usr/bin/apt-cache policy -t #{params[:release]} #{title} | /bin/grep -q 'Installed: #{params[:version]}'"
) }
end
end