X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Fclasses%2Fapt_spec.rb;h=cc2264bc7a98ef7456e44513036998fa44ba6093;hb=3717ce92ad07ebb9ca42e9c015c4b5920a155872;hp=81d5d1bee676ca218070904bbbf8d44eadc5e9cb;hpb=dc746734f17faa996e8441d176143945e8347330;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/spec/classes/apt_spec.rb b/spec/classes/apt_spec.rb index 81d5d1b..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 => { @@ -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