X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Fdefines%2Fsource_spec.rb;h=24f50f79633389ecfa66b7586e264079bc1d5e7e;hb=80d83d9a88267737a8dbefb751322ce7bcc2b072;hp=7fd86b56ff0ff35e98ff8a4e5abd90fdfb31c13b;hpb=dc746734f17faa996e8441d176143945e8347330;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/spec/defines/source_spec.rb b/spec/defines/source_spec.rb index 7fd86b5..24f50f7 100644 --- a/spec/defines/source_spec.rb +++ b/spec/defines/source_spec.rb @@ -22,7 +22,7 @@ describe 'apt::source' do end it do expect { - is_expected.to compile + subject.call }.to raise_error(Puppet::Error, /source entry without specifying a location/) end end @@ -51,6 +51,31 @@ describe 'apt::source' do :osfamily => 'Debian' } end + + context 'with complex pin' do + let :params do + { + :location => 'hello.there', + :pin => { 'release' => 'wishwash', + 'explanation' => 'wishwash', + 'priority' => 1001, }, + } + end + + it { is_expected.to contain_apt__setting('list-my_source').with({ + :ensure => 'present', + }).with_content(/hello.there wheezy main\n/) + } + + it { is_expected.to contain_apt__pin('my_source').that_comes_before('Apt::Setting[list-my_source]').with({ + :ensure => 'present', + :priority => 1001, + :explanation => 'wishwash', + :release => 'wishwash', + }) + } + end + context 'with simple key' do let :params do { @@ -231,9 +256,32 @@ describe 'apt::source' do it do expect { - is_expected.to compile + subject.call }.to raise_error(Puppet::Error, /lsbdistcodename fact not available: release parameter required/) end end + + context 'invalid pin' do + let :facts do + { + :lsbdistid => 'Debian', + :lsbdistcodename => 'wheezy', + :osfamily => 'Debian' + } + end + let :params do + { + :location => 'hello.there', + :pin => true, + } + end + + it do + expect { + subject.call + }.to raise_error(Puppet::Error, /invalid value for pin/) + end + end + end end