2b156bc53288138df583c5ab292b09bc6a82a644
[puppet-modules/puppetlabs-apt.git] / spec / acceptance / apt_ppa_spec.rb
1 require 'spec_helper_acceptance'
2
3 if fact('operatingsystem') == 'Ubuntu'
4   describe 'apt::ppa' do
5
6     context 'reset' do
7       it 'removes ppa' do
8         shell('rm /etc/apt/sources.list.d/canonical-kernel-team-ppa-*', :acceptable_exit_codes => [0,1,2])
9         shell('rm /etc/apt/sources.list.d/raravena80-collectd5-*', :acceptable_exit_codes => [0,1,2])
10       end
11     end
12
13     context 'adding a ppa that doesnt exist' do
14       it 'should work with no errors' do
15         pp = <<-EOS
16         include '::apt'
17         apt::ppa { 'ppa:canonical-kernel-team/ppa': }
18         EOS
19
20         apply_manifest(pp, :catch_failures => true)
21       end
22
23       describe 'contains the source file' do
24         it 'contains a kernel ppa source' do
25           shell('ls /etc/apt/sources.list.d/canonical-kernel-team-ppa-*', :acceptable_exit_codes => [0])
26         end
27       end
28     end
29
30     context 'readding a removed ppa.' do
31       it 'setup' do
32         shell('add-apt-repository -y ppa:raravena80/collectd5')
33         # This leaves a blank file
34         shell('add-apt-repository --remove ppa:raravena80/collectd5')
35       end
36
37       it 'should readd it successfully' do
38         pp = <<-EOS
39         include '::apt'
40         apt::ppa { 'ppa:raravena80/collectd5': }
41         EOS
42
43         apply_manifest(pp, :catch_failures => true)
44       end
45     end
46
47     context 'reset' do
48       it 'removes added ppas' do
49         shell('rm /etc/apt/sources.list.d/canonical-kernel-team-ppa-*')
50         shell('rm /etc/apt/sources.list.d/raravena80-collectd5-*')
51       end
52     end
53
54     context 'release' do
55       context 'precise' do
56         it 'works without failure' do
57           pp = <<-EOS
58           include '::apt'
59           apt::ppa { 'ppa:canonical-kernel-team/ppa':
60             release => precise,
61           }
62           EOS
63
64           shell('rm -rf /etc/apt/sources.list.d/canonical-kernel-team-ppa*', :acceptable_exit_codes => [0,1,2])
65           apply_manifest(pp, :catch_failures => true)
66         end
67
68         describe file('/etc/apt/sources.list.d/canonical-kernel-team-ppa-precise.list') do
69           it { should be_file }
70         end
71       end
72     end
73
74     context 'options' do
75       context '-y' do
76         it 'works without failure' do
77           pp = <<-EOS
78           include '::apt'
79           apt::ppa { 'ppa:canonical-kernel-team/ppa':
80             release => precise,
81             options => '-y',
82           }
83           EOS
84
85           shell('rm -rf /etc/apt/sources.list.d/canonical-kernel-team-ppa*', :acceptable_exit_codes => [0,1,2])
86           apply_manifest(pp, :catch_failures => true)
87         end
88
89         describe file('/etc/apt/sources.list.d/canonical-kernel-team-ppa-precise.list') do
90           it { should be_file }
91         end
92       end
93     end
94
95     context 'reset' do
96       it { shell('rm -rf /etc/apt/sources.list.d/canonical-kernel-team-ppa*', :acceptable_exit_codes => [0,1,2]) }
97     end
98
99   end
100 end