X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Fdefines%2Fsource_spec.rb;h=cfae55cc8f7e2ae01989a4fd2e26dedde6687bad;hb=4d66d23becb51efd0eb0766352ce5f53dfacd7ba;hp=e2ae69a1617bd32a0b0f0541bef89d0a97b91446;hpb=2a289382997343db202f6e66aff15732f78993c6;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/spec/defines/source_spec.rb b/spec/defines/source_spec.rb index e2ae69a..cfae55c 100644 --- a/spec/defines/source_spec.rb +++ b/spec/defines/source_spec.rb @@ -12,18 +12,37 @@ describe 'apt::source' do end context 'defaults' do - let :facts do - { - :lsbdistid => 'Debian', - :lsbdistcodename => 'wheezy', - :osfamily => 'Debian' - } + context 'without location' do + let :facts do + { + :lsbdistid => 'Debian', + :lsbdistcodename => 'wheezy', + :osfamily => 'Debian', + :puppetversion => Puppet.version, + } + end + it do + expect { + subject.call + }.to raise_error(Puppet::Error, /source entry without specifying a location/) + end end + context 'with location' do + let :facts do + { + :lsbdistid => 'Debian', + :lsbdistcodename => 'wheezy', + :osfamily => 'Debian', + :puppetversion => Puppet.version, + } + end + let(:params) { { :location => 'hello.there', } } - it { is_expected.to contain_apt__setting('list-my_source').with({ - :ensure => 'present', - }).without_content(/# my_source\ndeb-src wheezy main\n/) - } + it { is_expected.to contain_apt__setting('list-my_source').with({ + :ensure => 'present', + }).without_content(/# my_source\ndeb-src hello.there wheezy main\n/) + } + end end describe 'no defaults' do @@ -31,9 +50,37 @@ describe 'apt::source' do { :lsbdistid => 'Debian', :lsbdistcodename => 'wheezy', - :osfamily => 'Debian' + :osfamily => 'Debian', + :puppetversion => Puppet.version, } 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_file('/etc/apt/sources.list.d/my_source.list').that_notifies('Class[Apt::Update]')} + + 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 { @@ -44,7 +91,7 @@ describe 'apt::source' do :key => GPG_KEY_ID, :pin => '10', :architecture => 'x86_64', - :trusted_source => true, + :allow_unsigned => true, } end @@ -79,7 +126,7 @@ describe 'apt::source' do 'source' => 'http://apt.puppetlabs.com/pubkey.gpg',}, :pin => '10', :architecture => 'x86_64', - :trusted_source => true, + :allow_unsigned => true, } end @@ -115,7 +162,7 @@ describe 'apt::source' do :key => GPG_KEY_ID, :pin => '10', :architecture => 'x86_64', - :trusted_source => true, + :allow_unsigned => true, } end @@ -139,23 +186,25 @@ describe 'apt::source' do end end - context 'trusted_source true' do + context 'allow_unsigned true' do let :facts do { :lsbdistid => 'Debian', :lsbdistcodename => 'wheezy', - :osfamily => 'Debian' + :osfamily => 'Debian', + :puppetversion => Puppet.version, } end let :params do { - :trusted_source => true, + :location => 'hello.there', + :allow_unsigned => true, } end it { is_expected.to contain_apt__setting('list-my_source').with({ :ensure => 'present', - }).with_content(/# my_source\ndeb \[trusted=yes\] wheezy main\n/) + }).with_content(/# my_source\ndeb \[trusted=yes\] hello.there wheezy main\n/) } end @@ -164,11 +213,13 @@ describe 'apt::source' do { :lsbdistid => 'Debian', :lsbdistcodename => 'wheezy', - :osfamily => 'Debian' + :osfamily => 'Debian', + :puppetversion => Puppet.version, } end let :params do { + :location => 'hello.there', :include => {'deb' => false, 'src' => true,}, :architecture => 'x86_64', } @@ -176,16 +227,111 @@ describe 'apt::source' do it { is_expected.to contain_apt__setting('list-my_source').with({ :ensure => 'present', - }).with_content(/# my_source\ndeb-src \[arch=x86_64 \] wheezy main\n/) + }).with_content(/# my_source\ndeb-src \[arch=x86_64\] hello.there wheezy main\n/) } end + context 'include_src => true' do + let :facts do + { + :lsbdistid => 'Debian', + :lsbdistcodename => 'wheezy', + :osfamily => 'Debian', + :puppetversion => Puppet.version, + } + end + let :params do + { + :location => 'hello.there', + :include_src => true, + } + end + + it { is_expected.to contain_apt__setting('list-my_source').with({ + :ensure => 'present', + }).with_content(/# my_source\ndeb hello.there wheezy main\ndeb-src hello.there wheezy main\n/) + } + end + + context 'include_deb => false' do + let :facts do + { + :lsbdistid => 'debian', + :lsbdistcodename => 'wheezy', + :osfamily => 'debian', + :puppetversion => Puppet.version, + } + end + let :params do + { + :location => 'hello.there', + :include_deb => false, + } + end + + it { is_expected.to contain_apt__setting('list-my_source').with({ + :ensure => 'present', + }).without_content(/deb-src hello.there wheezy main\n/) + } + it { is_expected.to contain_apt__setting('list-my_source').without_content(/deb hello.there wheezy main\n/) } + end + + context 'include_src => true and include_deb => false' do + let :facts do + { + :lsbdistid => 'debian', + :lsbdistcodename => 'wheezy', + :osfamily => 'debian', + :puppetversion => Puppet.version, + } + end + let :params do + { + :location => 'hello.there', + :include_deb => false, + :include_src => true, + } + end + + it { is_expected.to contain_apt__setting('list-my_source').with({ + :ensure => 'present', + }).with_content(/deb-src hello.there wheezy main\n/) + } + it { is_expected.to contain_apt__setting('list-my_source').without_content(/deb hello.there wheezy main\n/) } + end + + context 'include precedence' do + let :facts do + { + :lsbdistid => 'debian', + :lsbdistcodename => 'wheezy', + :osfamily => 'debian', + :puppetversion => Puppet.version, + } + end + let :params do + { + :location => 'hello.there', + :include_deb => true, + :include_src => false, + :include => { 'deb' => false, 'src' => true }, + } + end + + it { is_expected.to contain_apt__setting('list-my_source').with({ + :ensure => 'present', + }).with_content(/deb-src hello.there wheezy main\n/) + } + it { is_expected.to contain_apt__setting('list-my_source').without_content(/deb hello.there wheezy main\n/) } + end + context 'ensure => absent' do let :facts do { :lsbdistid => 'Debian', :lsbdistcodename => 'wheezy', - :osfamily => 'Debian' + :osfamily => 'Debian', + :puppetversion => Puppet.version, } end let :params do @@ -205,15 +351,41 @@ describe 'apt::source' do let :facts do { :lsbdistid => 'Debian', - :osfamily => 'Debian' + :osfamily => 'Debian', + :puppetversion => Puppet.version, } end + let(:params) { { :location => 'hello.there', } } 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', + :puppetversion => Puppet.version, + } + 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