require 'spec_helper'
describe 'apt' do
- let(:facts) { { :lsbdistid => 'Debian', :osfamily => 'Debian', :lsbdistcodename => 'wheezy', :puppetversion => Puppet.version} }
-
+ let(:facts) do
+ {
+ :os => { :family => 'Debian', :name => 'Debian', :release => { :major => '7', :full => '7.0' }},
+ :lsbdistid => 'Debian',
+ :osfamily => 'Debian',
+ :lsbdistcodename => 'wheezy',
+ :puppetversion => Puppet.version,
+ }
+ end
context 'defaults' do
it { is_expected.to contain_file('sources.list').that_notifies('Class[Apt::Update]').only_with({
:ensure => 'file',
context 'with sources defined on valid osfamily' do
let :facts do
- { :osfamily => 'Debian',
+ { :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '12', :full => '12.04' }},
+ :osfamily => 'Debian',
:lsbdistcodename => 'precise',
- :lsbdistid => 'Debian',
+ :lsbdistid => 'Ubuntu',
+ :lsbdistrelease => '12.04',
:puppetversion => Puppet.version,
}
end
'puppetlabs' => {
'location' => 'http://apt.puppetlabs.com',
'repos' => 'main',
- 'key' => { 'id' => '47B320EB4C7C375AA9DAE1A01054B7A24BD6EC30', 'server' => 'pgp.mit.edu' },
+ 'key' => { 'id' => '6F6B15509CF8E59E6E469F327F438280EF8D349F', 'server' => 'pgp.mit.edu' },
}
} } }
it { is_expected.to contain_file('/etc/apt/sources.list.d/puppetlabs.list').with_content(/^deb http:\/\/apt.puppetlabs.com precise main$/) }
end
+ context 'with confs defined on valid osfamily' do
+ let :facts do
+ {
+ :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '12', :full => '12.04.5' }},
+ :osfamily => 'Debian',
+ :lsbdistcodename => 'precise',
+ :lsbdistid => 'Debian',
+ :puppetversion => Puppet.version,
+ }
+ end
+ let(:params) { { :confs => {
+ 'foo' => {
+ 'content' => 'foo',
+ },
+ 'bar' => {
+ 'content' => 'bar',
+ }
+ } } }
+
+ it { is_expected.to contain_apt__conf('foo').with({
+ :content => 'foo',
+ })}
+
+ it { is_expected.to contain_apt__conf('bar').with({
+ :content => 'bar',
+ })}
+ end
+
context 'with keys defined on valid osfamily' do
let :facts do
- { :osfamily => 'Debian',
+ {
+ :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '12', :full => '12.04.5' }},
+ :osfamily => 'Debian',
:lsbdistcodename => 'precise',
:lsbdistid => 'Debian',
:puppetversion => Puppet.version,
'55BE302B' => {
'server' => 'subkeys.pgp.net',
},
- '4BD6EC30' => {
+ 'EF8D349F' => {
'server' => 'pgp.mit.edu',
}
} } }
:server => 'subkeys.pgp.net',
})}
- it { is_expected.to contain_apt__key('4BD6EC30').with({
+ it { is_expected.to contain_apt__key('EF8D349F').with({
:server => 'pgp.mit.edu',
})}
end
context 'with ppas defined on valid osfamily' do
let :facts do
- { :osfamily => 'Debian',
+ {
+ :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '12', :full => '12.04.5' }},
+ :osfamily => 'Debian',
:lsbdistcodename => 'precise',
:lsbdistid => 'ubuntu',
+ :lsbdistrelease => '12.04',
:puppetversion => Puppet.version,
}
end
context 'with settings defined on valid osfamily' do
let :facts do
- { :osfamily => 'Debian',
+ {
+ :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '12', :full => '12.04.5' }},
+ :osfamily => 'Debian',
:lsbdistcodename => 'precise',
:lsbdistid => 'Debian',
:puppetversion => Puppet.version,
it { is_expected.to contain_apt__setting('pref-banana')}
end
+ context 'with pins defined on valid osfamily' do
+ let :facts do
+ {
+ :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '12', :full => '12.04.5' }},
+ :osfamily => 'Debian',
+ :lsbdistcodename => 'precise',
+ :lsbdistid => 'Debian',
+ :puppetversion => Puppet.version,
+ }
+ end
+ let(:params) { { :pins => {
+ 'stable' => { 'priority' => 600, 'order' => 50 },
+ 'testing' => { 'priority' => 700, 'order' => 100 },
+ } } }
+
+ it { is_expected.to contain_apt__pin('stable') }
+ it { is_expected.to contain_apt__pin('testing') }
+ end
+
describe 'failing tests' do
context "purge['sources.list']=>'banana'" do
let(:params) { { :purge => { 'sources.list' => 'banana' }, } }
}.to raise_error(Puppet::Error)
end
end
-
- context 'with unsupported osfamily' do
- let :facts do
- { :osfamily => 'Darwin', :puppetversion => Puppet.version,}
- end
-
- it do
- expect {
- subject.call
- }.to raise_error(Puppet::Error, /This module only works on Debian or derivatives like Ubuntu/)
- end
- end
end
end