2 describe 'apt::ppa', :type => :define do
10 :lsbdistrelease => '11.04',
11 :lsbdistcodename => 'natty',
12 :operatingsystem => 'Ubuntu',
13 :osfamily => 'Debian',
14 :lsbdistid => 'Ubuntu',
18 let(:title) { 'ppa:needs/such.substitution/wow' }
19 it { is_expected.to_not contain_package('python-software-properties') }
20 it { is_expected.to contain_exec('add-apt-repository-ppa:needs/such.substitution/wow').that_notifies('Exec[apt_update]').with({
22 'command' => '/usr/bin/add-apt-repository -y ppa:needs/such.substitution/wow',
23 'unless' => '/usr/bin/test -s /etc/apt/sources.list.d/needs-such_substitution-wow-natty.list',
25 'logoutput' => 'on_failure',
30 describe 'apt included, no proxy' do
36 :lsbdistrelease => '14.04',
37 :lsbdistcodename => 'trusty',
38 :operatingsystem => 'Ubuntu',
39 :lsbdistid => 'Ubuntu',
40 :osfamily => 'Debian',
46 'package_manage' => true,
49 let(:title) { 'ppa:foo' }
50 it { is_expected.to contain_package('software-properties-common') }
51 it { is_expected.to contain_exec('add-apt-repository-ppa:foo').that_notifies('Exec[apt_update]').with({
53 'command' => '/usr/bin/add-apt-repository ppa:foo',
54 'unless' => '/usr/bin/test -s /etc/apt/sources.list.d/foo-trusty.list',
56 'logoutput' => 'on_failure',
61 describe 'ensure absent' do
67 :lsbdistrelease => '14.04',
68 :lsbdistcodename => 'trusty',
69 :operatingsystem => 'Ubuntu',
70 :lsbdistid => 'Ubuntu',
71 :osfamily => 'Debian',
74 let(:title) { 'ppa:foo' }
80 it { is_expected.to contain_file('/etc/apt/sources.list.d/foo-trusty.list').that_notifies('Exec[apt_update]').with({
86 context 'validation' do
87 describe 'no release' do
90 :lsbdistrelease => '14.04',
91 :operatingsystem => 'Ubuntu',
92 :lsbdistid => 'Ubuntu',
93 :osfamily => 'Debian',
96 let(:title) { 'ppa:foo' }
99 is_expected.to compile
100 }.to raise_error(Puppet::Error, /lsbdistcodename fact not available: release parameter required/)
104 describe 'not ubuntu' do
107 :lsbdistrelease => '14.04',
108 :lsbdistcodename => 'trusty',
109 :operatingsystem => 'Debian',
110 :lsbdistid => 'Ubuntu',
111 :osfamily => 'Debian',
114 let(:title) { 'ppa:foo' }
117 is_expected.to compile
118 }.to raise_error(Puppet::Error, /apt::ppa is currently supported on Ubuntu only./)