10 :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '11', :full => '11.04' }},
11 :lsbdistrelease => '11.04',
12 :lsbdistcodename => 'natty',
13 :operatingsystem => 'Ubuntu',
14 :osfamily => 'Debian',
15 :lsbdistid => 'Ubuntu',
16 :puppetversion => Puppet.version,
20 let(:title) { 'ppa:needs/such.substitution/wow+type' }
21 it { is_expected.to_not contain_package('python-software-properties') }
22 it { is_expected.to contain_exec('add-apt-repository-ppa:needs/such.substitution/wow+type').that_notifies('Class[Apt::Update]').with({
24 :command => '/usr/bin/add-apt-repository -y ppa:needs/such.substitution/wow+type',
25 :unless => '/usr/bin/test -f /etc/apt/sources.list.d/needs-such_substitution-wow_type-natty.list',
27 :logoutput => 'on_failure',
32 describe 'Ubuntu 15.10 sources.list filename' do
35 :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '15', :full => '15.10' }},
36 :lsbdistrelease => '15.10',
37 :lsbdistcodename => 'wily',
38 :operatingsystem => 'Ubuntu',
39 :osfamily => 'Debian',
40 :lsbdistid => 'Ubuntu',
41 :puppetversion => Puppet.version,
45 let(:title) { 'ppa:user/foo' }
46 it { is_expected.to contain_exec('add-apt-repository-ppa:user/foo').that_notifies('Class[Apt::Update]').with({
48 :command => '/usr/bin/add-apt-repository -y ppa:user/foo',
49 :unless => '/usr/bin/test -f /etc/apt/sources.list.d/user-ubuntu-foo-wily.list',
51 :logoutput => 'on_failure',
56 describe 'ppa depending on ppa, MODULES-1156' do
62 describe 'package_name => software-properties-common' do
68 :package_name => 'software-properties-common',
69 :package_manage => true,
74 :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '11', :full => '11.04' }},
75 :lsbdistrelease => '11.04',
76 :lsbdistcodename => 'natty',
77 :operatingsystem => 'Ubuntu',
78 :osfamily => 'Debian',
79 :lsbdistid => 'Ubuntu',
80 :puppetversion => Puppet.version,
84 let(:title) { 'ppa:needs/such.substitution/wow' }
85 it { is_expected.to contain_package('software-properties-common') }
86 it { is_expected.to contain_exec('add-apt-repository-ppa:needs/such.substitution/wow').that_notifies('Class[Apt::Update]').with({
88 'command' => '/usr/bin/add-apt-repository -y ppa:needs/such.substitution/wow',
89 'unless' => '/usr/bin/test -f /etc/apt/sources.list.d/needs-such_substitution-wow-natty.list',
91 'logoutput' => 'on_failure',
95 it { is_expected.to contain_file('/etc/apt/sources.list.d/needs-such_substitution-wow-natty.list').that_requires('Exec[add-apt-repository-ppa:needs/such.substitution/wow]').with({
101 describe 'package_manage => true, multiple ppas, MODULES-2873' do
102 let :pre_condition do
104 apt::ppa {"ppa:user/foo":
105 package_manage => true
110 :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '11', :full => '11.04' }},
111 :lsbdistrelease => '11.04',
112 :lsbdistcodename => 'natty',
113 :operatingsystem => 'Ubuntu',
114 :osfamily => 'Debian',
115 :lsbdistid => 'Ubuntu',
116 :puppetversion => Puppet.version,
121 :package_manage => true,
125 let(:title) { 'ppa:user/bar' }
126 it { is_expected.to contain_package('python-software-properties') }
127 it { is_expected.to contain_exec('add-apt-repository-ppa:user/bar').that_notifies('Class[Apt::Update]').with({
129 'command' => '/usr/bin/add-apt-repository -y ppa:user/bar',
130 'unless' => '/usr/bin/test -f /etc/apt/sources.list.d/user-bar-natty.list',
132 'logoutput' => 'on_failure',
136 it { is_expected.to contain_file('/etc/apt/sources.list.d/user-bar-natty.list').that_requires('Exec[add-apt-repository-ppa:user/bar]').with({
142 describe 'package_manage => false' do
143 let :pre_condition do
148 :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '11', :full => '11.04' }},
149 :lsbdistrelease => '11.04',
150 :lsbdistcodename => 'natty',
151 :operatingsystem => 'Ubuntu',
152 :osfamily => 'Debian',
153 :lsbdistid => 'Ubuntu',
154 :puppetversion => Puppet.version,
159 :package_manage => false,
163 let(:title) { 'ppa:needs/such.substitution/wow' }
164 it { is_expected.to_not contain_package('python-software-properties') }
165 it { is_expected.to contain_exec('add-apt-repository-ppa:needs/such.substitution/wow').that_notifies('Class[Apt::Update]').with({
167 'command' => '/usr/bin/add-apt-repository -y ppa:needs/such.substitution/wow',
168 'unless' => '/usr/bin/test -f /etc/apt/sources.list.d/needs-such_substitution-wow-natty.list',
170 'logoutput' => 'on_failure',
174 it { is_expected.to contain_file('/etc/apt/sources.list.d/needs-such_substitution-wow-natty.list').that_requires('Exec[add-apt-repository-ppa:needs/such.substitution/wow]').with({
180 describe 'apt included, no proxy' do
181 let :pre_condition do
183 apt::ppa { "ppa:user/foo2": }
188 :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '14', :full => '14.04' }},
189 :lsbdistrelease => '14.04',
190 :lsbdistcodename => 'trusty',
191 :operatingsystem => 'Ubuntu',
192 :lsbdistid => 'Ubuntu',
193 :osfamily => 'Debian',
194 :puppetversion => Puppet.version,
200 :package_manage => true,
201 :require => 'Apt::Ppa[ppa:user/foo2]',
204 let(:title) { 'ppa:user/foo' }
205 it { is_expected.to compile.with_all_deps }
206 it { is_expected.to contain_package('software-properties-common') }
207 it { is_expected.to contain_exec('add-apt-repository-ppa:user/foo').that_notifies('Class[Apt::Update]').with({
209 :command => '/usr/bin/add-apt-repository ppa:user/foo',
210 :unless => '/usr/bin/test -f /etc/apt/sources.list.d/user-foo-trusty.list',
212 :logoutput => 'on_failure',
217 describe 'apt included, proxy host' do
218 let :pre_condition do
220 proxy => { "host" => "localhost" },
225 :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '14', :full => '14.04' }},
226 :lsbdistrelease => '14.04',
227 :lsbdistcodename => 'trusty',
228 :operatingsystem => 'Ubuntu',
229 :lsbdistid => 'Ubuntu',
230 :osfamily => 'Debian',
231 :puppetversion => Puppet.version,
237 'package_manage' => true,
240 let(:title) { 'ppa:user/foo' }
241 it { is_expected.to contain_package('software-properties-common') }
242 it { is_expected.to contain_exec('add-apt-repository-ppa:user/foo').that_notifies('Class[Apt::Update]').with({
243 :environment => ['http_proxy=http://localhost:8080'],
244 :command => '/usr/bin/add-apt-repository ppa:user/foo',
245 :unless => '/usr/bin/test -f /etc/apt/sources.list.d/user-foo-trusty.list',
247 :logoutput => 'on_failure',
252 describe 'apt included, proxy host and port' do
253 let :pre_condition do
255 proxy => { "host" => "localhost", "port" => 8180 },
260 :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '14', :full => '14.04' }},
261 :lsbdistrelease => '14.04',
262 :lsbdistcodename => 'trusty',
263 :operatingsystem => 'Ubuntu',
264 :lsbdistid => 'Ubuntu',
265 :osfamily => 'Debian',
266 :puppetversion => Puppet.version,
272 :package_manage => true,
275 let(:title) { 'ppa:user/foo' }
276 it { is_expected.to contain_package('software-properties-common') }
277 it { is_expected.to contain_exec('add-apt-repository-ppa:user/foo').that_notifies('Class[Apt::Update]').with({
278 :environment => ['http_proxy=http://localhost:8180'],
279 :command => '/usr/bin/add-apt-repository ppa:user/foo',
280 :unless => '/usr/bin/test -f /etc/apt/sources.list.d/user-foo-trusty.list',
282 :logoutput => 'on_failure',
287 describe 'apt included, proxy host and port and https' do
288 let :pre_condition do
290 proxy => { "host" => "localhost", "port" => 8180, "https" => true },
295 :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '14', :full => '14.04' }},
296 :lsbdistrelease => '14.04',
297 :lsbdistcodename => 'trusty',
298 :operatingsystem => 'Ubuntu',
299 :lsbdistid => 'Ubuntu',
300 :osfamily => 'Debian',
301 :puppetversion => Puppet.version,
307 :package_manage => true,
310 let(:title) { 'ppa:user/foo' }
311 it { is_expected.to contain_package('software-properties-common') }
312 it { is_expected.to contain_exec('add-apt-repository-ppa:user/foo').that_notifies('Class[Apt::Update]').with({
313 :environment => ['http_proxy=http://localhost:8180', 'https_proxy=https://localhost:8180'],
314 :command => '/usr/bin/add-apt-repository ppa:user/foo',
315 :unless => '/usr/bin/test -f /etc/apt/sources.list.d/user-foo-trusty.list',
317 :logoutput => 'on_failure',
322 describe 'ensure absent' do
323 let :pre_condition do
328 :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '14', :full => '14.04' }},
329 :lsbdistrelease => '14.04',
330 :lsbdistcodename => 'trusty',
331 :operatingsystem => 'Ubuntu',
332 :lsbdistid => 'Ubuntu',
333 :osfamily => 'Debian',
334 :puppetversion => Puppet.version,
337 let(:title) { 'ppa:user/foo' }
343 it { is_expected.to contain_file('/etc/apt/sources.list.d/user-foo-trusty.list').that_notifies('Class[Apt::Update]').with({
349 context 'validation' do
350 describe 'no release' do
353 :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '14', :full => '14.04' }},
354 :lsbdistrelease => '14.04',
355 :operatingsystem => 'Ubuntu',
356 :lsbdistid => 'Ubuntu',
357 :osfamily => 'Debian',
358 :lsbdistcodeanme => nil,
359 :puppetversion => Puppet.version,
362 let(:title) { 'ppa:user/foo' }
366 }.to raise_error(Puppet::Error, /lsbdistcodename fact not available: release parameter required/)
370 describe 'not ubuntu' do
373 :os => { :family => 'Debian', :name => 'Debian', :release => { :major => '6', :full => '6.0.7' }},
374 :lsbdistrelease => '6.0.7',
375 :lsbdistcodename => 'wheezy',
376 :operatingsystem => 'Debian',
377 :lsbdistid => 'debian',
378 :osfamily => 'Debian',
379 :puppetversion => Puppet.version,
382 let(:title) { 'ppa:user/foo' }
386 }.to raise_error(Puppet::Error, /not currently supported on Debian/)