X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Fclasses%2Fapt_spec.rb;h=cc2264bc7a98ef7456e44513036998fa44ba6093;hb=3717ce92ad07ebb9ca42e9c015c4b5920a155872;hp=2131c8ae9e54244c3a21894c1d291f7229f57970;hpb=ff51f714aba075f1bb8605471f8c34ee0654da5c;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/spec/classes/apt_spec.rb b/spec/classes/apt_spec.rb index 2131c8a..cc2264b 100644 --- a/spec/classes/apt_spec.rb +++ b/spec/classes/apt_spec.rb @@ -1,47 +1,46 @@ require 'spec_helper' describe 'apt' do - let(:facts) { { :lsbdistid => 'Debian', :osfamily => 'Debian', :lsbdistcodename => 'wheezy'} } + let(:facts) { { :lsbdistid => 'Debian', :osfamily => 'Debian', :lsbdistcodename => 'wheezy', :puppetversion => Puppet.version} } context 'defaults' do - it { is_expected.to contain_file('sources.list').that_notifies('Exec[apt_update]').only_with({ + it { is_expected.to contain_file('sources.list').that_notifies('Class[Apt::Update]').only_with({ :ensure => 'file', :path => '/etc/apt/sources.list', :owner => 'root', :group => 'root', :mode => '0644', - :content => "# Repos managed by puppet.\n", - :notify => 'Exec[apt_update]', + :notify => 'Class[Apt::Update]', })} - it { is_expected.to contain_file('sources.list.d').that_notifies('Exec[apt_update]').only_with({ + it { is_expected.to contain_file('sources.list.d').that_notifies('Class[Apt::Update]').only_with({ :ensure => 'directory', :path => '/etc/apt/sources.list.d', :owner => 'root', :group => 'root', :mode => '0644', - :purge => true, - :recurse => true, - :notify => 'Exec[apt_update]', + :purge => false, + :recurse => false, + :notify => 'Class[Apt::Update]', })} - it { is_expected.to contain_file('preferences').that_notifies('Exec[apt_update]').only_with({ - :ensure => 'absent', + it { is_expected.to contain_file('preferences').that_notifies('Class[Apt::Update]').only_with({ + :ensure => 'file', :path => '/etc/apt/preferences', :owner => 'root', :group => 'root', :mode => '0644', - :notify => 'Exec[apt_update]', + :notify => 'Class[Apt::Update]', })} - it { is_expected.to contain_file('preferences.d').that_notifies('Exec[apt_update]').only_with({ + it { is_expected.to contain_file('preferences.d').that_notifies('Class[Apt::Update]').only_with({ :ensure => 'directory', :path => '/etc/apt/preferences.d', :owner => 'root', :group => 'root', :mode => '0644', - :purge => true, - :recurse => true, - :notify => 'Exec[apt_update]', + :purge => false, + :recurse => false, + :notify => 'Class[Apt::Update]', })} it 'should lay down /etc/apt/apt.conf.d/15update-stamp' do @@ -92,6 +91,14 @@ describe 'apt' do /Acquire::https::proxy "https:\/\/localhost:8080\/";/ )} end + + context 'ensure=absent' do + let(:params) { { :proxy => { 'ensure' => 'absent'} } } + it { is_expected.to contain_apt__setting('conf-proxy').with({ + :ensure => 'absent', + :priority => '01', + })} + end end context 'lots of non-defaults' do let :params do @@ -102,8 +109,8 @@ describe 'apt' do } end - it { is_expected.to contain_file('sources.list').without({ - :content => "# Repos managed by puppet.\n", + it { is_expected.to contain_file('sources.list').with({ + :content => nil, })} it { is_expected.to contain_file('sources.list.d').with({ @@ -133,6 +140,7 @@ describe 'apt' do { :osfamily => 'Debian', :lsbdistcodename => 'precise', :lsbdistid => 'Debian', + :puppetversion => Puppet.version, } end let(:params) { { :sources => { @@ -140,14 +148,14 @@ describe 'apt' do 'location' => 'http://debian.mirror.iweb.ca/debian/', 'release' => 'unstable', 'repos' => 'main contrib non-free', - 'key' => { 'id' => '55BE302B', 'server' => 'subkeys.pgp.net' }, + 'key' => { 'id' => '150C8614919D8446E01E83AF9AA38DCD55BE302B', 'server' => 'subkeys.pgp.net' }, 'pin' => '-10', 'include' => {'src' => true,}, }, 'puppetlabs' => { 'location' => 'http://apt.puppetlabs.com', 'repos' => 'main', - 'key' => { 'id' => '4BD6EC30', 'server' => 'pgp.mit.edu' }, + 'key' => { 'id' => '47B320EB4C7C375AA9DAE1A01054B7A24BD6EC30', 'server' => 'pgp.mit.edu' }, } } } } @@ -174,6 +182,7 @@ describe 'apt' do { :osfamily => 'Debian', :lsbdistcodename => 'precise', :lsbdistid => 'Debian', + :puppetversion => Puppet.version, } end let(:params) { { :keys => { @@ -199,6 +208,8 @@ describe 'apt' do { :osfamily => 'Debian', :lsbdistcodename => 'precise', :lsbdistid => 'ubuntu', + :lsbdistrelease => '12.04', + :puppetversion => Puppet.version, } end let(:params) { { :ppas => { @@ -215,6 +226,7 @@ describe 'apt' do { :osfamily => 'Debian', :lsbdistcodename => 'precise', :lsbdistid => 'Debian', + :puppetversion => Puppet.version, } end let(:params) { { :settings => { @@ -226,12 +238,29 @@ describe 'apt' do it { is_expected.to contain_apt__setting('pref-banana')} end + context 'with pins defined on valid osfamily' do + let :facts do + { :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' }, } } it do expect { - is_expected.to compile + subject.call }.to raise_error(Puppet::Error) end end @@ -240,7 +269,7 @@ describe 'apt' do let(:params) { { :purge => { 'sources.list.d' => 'banana' }, } } it do expect { - is_expected.to compile + subject.call }.to raise_error(Puppet::Error) end end @@ -249,7 +278,7 @@ describe 'apt' do let(:params) { { :purge => { 'preferences' => 'banana' }, } } it do expect { - is_expected.to compile + subject.call }.to raise_error(Puppet::Error) end end @@ -258,19 +287,19 @@ describe 'apt' do let(:params) { { :purge => { 'preferences.d' => 'banana' }, } } it do expect { - is_expected.to compile + subject.call }.to raise_error(Puppet::Error) end end context 'with unsupported osfamily' do let :facts do - { :osfamily => 'Darwin', } + { :osfamily => 'Darwin', :puppetversion => Puppet.version,} end it do expect { - is_expected.to compile + subject.call }.to raise_error(Puppet::Error, /This module only works on Debian or derivatives like Ubuntu/) end end