2012-01-23 22:08:00 +01:00
require 'spec_helper'
2014-02-20 16:18:37 +01:00
2012-01-23 22:08:00 +01:00
describe 'apt::source' , :type = > :define do
2014-09-04 04:00:57 +02:00
GPG_KEY_ID = '47B320EB4C7C375AA9DAE1A01054B7A24BD6EC30'
2014-02-20 16:18:37 +01:00
2012-01-23 22:08:00 +01:00
let :title do
'my_source'
end
2014-08-01 00:11:57 +02:00
context 'mostly defaults' do
let :facts do
{
:lsbdistid = > 'Debian' ,
:lsbdistcodename = > 'wheezy' ,
2014-08-18 22:12:55 +02:00
:osfamily = > 'Debian'
2014-08-01 00:11:57 +02:00
}
end
2012-01-23 22:08:00 +01:00
2014-08-01 00:11:57 +02:00
let :params do
{
'include_deb' = > false ,
}
end
it { is_expected . to contain_file ( 'my_source.list' ) . that_notifies ( 'Exec[apt_update]' ) . with ( {
'ensure' = > 'present' ,
'path' = > '/etc/apt/sources.list.d/my_source.list' ,
'owner' = > 'root' ,
'group' = > 'root' ,
'mode' = > '0644' ,
2014-08-31 15:46:57 +02:00
} ) . with_content ( / # my_source \ ndeb-src wheezy main \ n / )
2012-01-23 22:08:00 +01:00
}
2014-08-01 00:11:57 +02:00
end
2012-01-23 22:08:00 +01:00
2014-08-01 00:11:57 +02:00
context 'no defaults' do
let :facts do
{
:lsbdistid = > 'Debian' ,
:lsbdistcodename = > 'wheezy' ,
2014-08-18 22:12:55 +02:00
:osfamily = > 'Debian'
2014-08-01 00:11:57 +02:00
}
end
let :params do
{
'comment' = > 'foo' ,
'location' = > 'http://debian.mirror.iweb.ca/debian/' ,
'release' = > 'sid' ,
'repos' = > 'testing' ,
'include_src' = > false ,
'required_packages' = > 'vim' ,
'key' = > GPG_KEY_ID ,
'key_server' = > 'pgp.mit.edu' ,
'key_content' = > 'GPG key content' ,
'key_source' = > 'http://apt.puppetlabs.com/pubkey.gpg' ,
'pin' = > '10' ,
'architecture' = > 'x86_64' ,
2015-01-21 19:54:37 +01:00
'trusted_source' = > true ,
2014-08-01 00:11:57 +02:00
}
end
2012-02-24 23:03:51 +01:00
2014-08-01 00:11:57 +02:00
it { is_expected . to contain_file ( 'my_source.list' ) . that_notifies ( 'Exec[apt_update]' ) . with ( {
'ensure' = > 'present' ,
'path' = > '/etc/apt/sources.list.d/my_source.list' ,
'owner' = > 'root' ,
'group' = > 'root' ,
'mode' = > '0644' ,
2014-08-31 15:46:57 +02:00
} ) . with_content ( / # foo \ ndeb \ [arch=x86_64 trusted=yes \ ] http: \/ \/ debian \ .mirror \ .iweb \ .ca \/ debian \/ sid testing \ n / ) . without_content ( / deb-src / )
2014-08-01 00:11:57 +02:00
}
2012-01-23 22:08:00 +01:00
2014-08-01 00:11:57 +02:00
it { is_expected . to contain_apt__pin ( 'my_source' ) . that_comes_before ( 'File[my_source.list]' ) . with ( {
'ensure' = > 'present' ,
'priority' = > '10' ,
'origin' = > 'debian.mirror.iweb.ca' ,
} )
}
2012-01-23 22:08:00 +01:00
2014-08-01 00:11:57 +02:00
it { is_expected . to contain_exec ( " Required packages: 'vim' for my_source " ) . that_comes_before ( 'Exec[apt_update]' ) . that_subscribes_to ( 'File[my_source.list]' ) . with ( {
'command' = > '/usr/bin/apt-get -y install vim' ,
'logoutput' = > 'on_failure' ,
'refreshonly' = > true ,
'tries' = > '3' ,
'try_sleep' = > '1' ,
} )
}
2012-01-23 22:08:00 +01:00
2014-08-01 00:11:57 +02:00
it { is_expected . to contain_apt__key ( " Add key: #{ GPG_KEY_ID } from Apt::Source my_source " ) . that_comes_before ( 'File[my_source.list]' ) . with ( {
'ensure' = > 'present' ,
'key' = > GPG_KEY_ID ,
'key_server' = > 'pgp.mit.edu' ,
'key_content' = > 'GPG key content' ,
'key_source' = > 'http://apt.puppetlabs.com/pubkey.gpg' ,
} )
}
end
2012-01-23 22:08:00 +01:00
2015-01-21 19:54:37 +01:00
context 'trusted_source true' do
2015-01-13 16:27:03 +01:00
let :facts do
{
:lsbdistid = > 'Debian' ,
:lsbdistcodename = > 'wheezy' ,
:osfamily = > 'Debian'
}
end
let :params do
{
2015-01-21 19:54:37 +01:00
'include_src' = > false ,
'trusted_source' = > true ,
2015-01-13 16:27:03 +01:00
}
end
it { is_expected . to contain_file ( 'my_source.list' ) . that_notifies ( 'Exec[apt_update]' ) . with ( {
'ensure' = > 'present' ,
'path' = > '/etc/apt/sources.list.d/my_source.list' ,
'owner' = > 'root' ,
'group' = > 'root' ,
'mode' = > '0644' ,
2014-08-31 15:46:57 +02:00
} ) . with_content ( / # my_source \ ndeb \ [trusted=yes \ ] wheezy main \ n / )
2015-01-13 16:27:03 +01:00
}
end
context 'architecture equals x86_64' do
let :facts do
{
:lsbdistid = > 'Debian' ,
:lsbdistcodename = > 'wheezy' ,
:osfamily = > 'Debian'
}
end
let :params do
{
'include_deb' = > false ,
'architecture' = > 'x86_64' ,
}
end
it { is_expected . to contain_file ( 'my_source.list' ) . that_notifies ( 'Exec[apt_update]' ) . with ( {
'ensure' = > 'present' ,
'path' = > '/etc/apt/sources.list.d/my_source.list' ,
'owner' = > 'root' ,
'group' = > 'root' ,
'mode' = > '0644' ,
2014-08-31 15:46:57 +02:00
} ) . with_content ( / # my_source \ ndeb-src \ [arch=x86_64 \ ] wheezy main \ n / )
2015-01-13 16:27:03 +01:00
}
end
2014-08-01 00:11:57 +02:00
context 'ensure => absent' do
let :facts do
{
:lsbdistid = > 'Debian' ,
:lsbdistcodename = > 'wheezy' ,
2014-08-18 22:12:55 +02:00
:osfamily = > 'Debian'
2012-01-23 22:08:00 +01:00
}
2014-08-01 00:11:57 +02:00
end
let :params do
{
'ensure' = > 'absent' ,
2012-01-23 22:08:00 +01:00
}
2014-08-01 00:11:57 +02:00
end
2012-01-23 22:08:00 +01:00
2014-08-01 00:11:57 +02:00
it { is_expected . to contain_file ( 'my_source.list' ) . that_notifies ( 'Exec[apt_update]' ) . with ( {
'ensure' = > 'absent'
} )
}
end
2012-01-23 22:08:00 +01:00
2014-08-01 00:11:57 +02:00
describe 'validation' do
context 'no release' do
let :facts do
{
:lsbdistid = > 'Debian' ,
2014-08-18 22:12:55 +02:00
:osfamily = > 'Debian'
2014-08-01 00:11:57 +02:00
}
end
2012-01-23 22:08:00 +01:00
2014-08-01 00:11:57 +02:00
it do
expect {
should compile
} . to raise_error ( Puppet :: Error , / lsbdistcodename fact not available: release parameter required / )
end
2012-01-23 22:08:00 +01:00
end
end
end