1 require 'spec_helper_acceptance'
3 describe 'apt::source' do
5 context 'apt::source' do
6 context 'ensure => present' do
7 it 'should work with no errors' do
10 apt::source { 'puppetlabs':
12 location => 'http://apt.puppetlabs.com',
15 key_server => 'pgp.mit.edu',
19 shell('apt-key del 4BD6EC30', :acceptable_exit_codes => [0,1,2])
20 shell('rm /etc/apt/sources.list.d/puppetlabs.list', :acceptable_exit_codes => [0,1,2])
21 apply_manifest(pp, :catch_failures => true)
24 describe 'key should exist' do
25 it 'finds puppetlabs key' do
26 shell('apt-key list | grep 4BD6EC30', :acceptable_exit_codes => [0])
30 describe file('/etc/apt/sources.list.d/puppetlabs.list') do
35 context 'ensure => absent' do
36 it 'should work with no errors' do
39 apt::source { 'puppetlabs':
41 location => 'http://apt.puppetlabs.com',
44 key_server => 'pgp.mit.edu',
48 apply_manifest(pp, :catch_failures => true)
51 # The key should remain -we don't delete those when deleting a source.
52 describe 'key should exist' do
53 it 'finds puppetlabs key' do
54 shell('apt-key list | grep 4BD6EC30', :acceptable_exit_codes => [0])
57 describe file('/etc/apt/sources.list.d/puppetlabs.list') do
58 it { should_not be_file }
66 it 'should work with no errors' do
69 apt::source { 'puppetlabs':
71 location => 'http://apt.puppetlabs.com',
74 key_server => 'pgp.mit.edu',
79 apply_manifest(pp, :catch_failures => true)
82 describe file('/etc/apt/sources.list.d/puppetlabs.list') do
84 it { should contain 'deb http://apt.puppetlabs.com precise main' }
89 context 'include_src' do
91 it 'should work with no errors' do
94 apt::source { 'puppetlabs':
96 location => 'http://apt.puppetlabs.com',
99 key_server => 'pgp.mit.edu',
104 apply_manifest(pp, :catch_failures => true)
107 describe file('/etc/apt/sources.list.d/puppetlabs.list') do
108 it { should be_file }
109 it { should contain 'deb-src http://apt.puppetlabs.com' }
114 it 'should work with no errors' do
117 apt::source { 'puppetlabs':
119 location => 'http://apt.puppetlabs.com',
122 key_server => 'pgp.mit.edu',
123 include_src => false,
127 apply_manifest(pp, :catch_failures => true)
130 describe file('/etc/apt/sources.list.d/puppetlabs.list') do
131 it { should be_file }
132 it { should_not contain 'deb-src http://apt.puppetlabs.com' }
137 context 'required_packages' do
139 it 'should work with no errors' do
142 apt::source { 'puppetlabs':
144 location => 'http://apt.puppetlabs.com',
147 key_server => 'pgp.mit.edu',
148 required_packages => 'vim',
152 shell('apt-get -y remove vim')
153 apply_manifest(pp, :catch_failures => true)
156 describe package('vim') do
157 it { should be_installed }
162 context 'key content' do
163 context 'giant key' do
164 it 'should work with no errors' do
167 apt::source { 'puppetlabs':
169 location => 'http://apt.puppetlabs.com',
172 key_content => '-----BEGIN PGP PUBLIC KEY BLOCK-----
173 Version: GnuPG v1.4.12 (GNU/Linux)
174 Comment: GPGTools - http://gpgtools.org
176 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
231 -----END PGP PUBLIC KEY BLOCK-----',
235 shell('apt-key del 4BD6EC30', :acceptable_exit_codes => [0,1,2])
236 apply_manifest(pp, :catch_failures => true)
239 describe file('/etc/apt/sources.list.d/puppetlabs.list') do
240 it { should be_file }
242 describe 'keys should exist' do
243 it 'finds puppetlabs key' do
244 shell('apt-key list | grep 4BD6EC30')
250 context 'key_source' do
251 context 'http://apt.puppetlabs.com/pubkey.gpg' do
252 it 'should work with no errors' do
255 apt::source { 'puppetlabs':
257 location => 'http://apt.puppetlabs.com',
258 release => 'precise',
261 key_source => 'http://apt.puppetlabs.com/pubkey.gpg',
265 shell('apt-key del 4BD6EC30', :acceptable_exit_codes => [0,1,2])
266 apply_manifest(pp, :catch_failures => true)
269 describe file('/etc/apt/sources.list.d/puppetlabs.list') do
270 it { should be_file }
271 it { should contain 'deb http://apt.puppetlabs.com precise main' }
273 describe 'keys should exist' do
274 it 'finds puppetlabs key' do
275 shell('apt-key list | grep 4BD6EC30')
283 it 'should work with no errors' do
286 apt::source { 'puppetlabs':
288 location => 'http://apt.puppetlabs.com',
291 key_server => 'pgp.mit.edu',
296 apply_manifest(pp, :catch_failures => true)
299 describe file('/etc/apt/preferences.d/puppetlabs.pref') do
300 it { should_not be_file }
304 it 'should work with no errors' do
307 apt::source { 'puppetlabs':
309 location => 'http://apt.puppetlabs.com',
312 key_server => 'pgp.mit.edu',
317 apply_manifest(pp, :catch_failures => true)
320 describe file('/etc/apt/preferences.d/puppetlabs.pref') do
321 it { should be_file }