2 describe 'apt::ppa', :type => :define do
3 [ { :lsbdistrelease => '11.04',
4 :lsbdistcodename => 'natty',
5 :operatingsystem => 'Ubuntu',
6 :package => 'python-software-properties'},
7 { :lsbdistrelease => '12.10',
8 :lsbdistcodename => 'quantal',
9 :operatingsystem => 'Ubuntu',
10 :package => 'software-properties-common'},
12 context "on #{platform[:lsbdistcodename]}" do
15 :lsbdistrelease => platform[:lsbdistrelease],
16 :lsbdistcodename => platform[:lsbdistcodename],
17 :operatingsystem => platform[:operatingsystem],
21 "#{platform[:lsbdistcodename]}"
24 "#{platform[:package]}"
29 ['ppa:dans_ppa', 'dans_ppa','ppa:dans-daily/ubuntu'].each do |t|
30 describe "with title #{t}" do
38 t.sub(/^ppa:/,'').gsub('/','-') << "-" << "#{release}.list"
41 it { should contain_package("#{package}") }
43 it { should contain_exec("apt_update").with(
44 'command' => '/usr/bin/apt-get update',
49 it { should contain_exec("add-apt-repository-#{t}").with(
50 'command' => "/usr/bin/add-apt-repository #{options} #{t}",
51 'unless' => "/usr/bin/test -s /etc/apt/sources.list.d/#{filename}",
52 'require' => ["File[sources.list.d]", "Package[#{package}]"],
53 'notify' => "Exec[apt_update]"
57 it { should create_file("/etc/apt/sources.list.d/#{filename}").with(
59 'require' => "Exec[add-apt-repository-#{t}]"
64 describe 'without a proxy defined' do
74 "#{title}-#{release}.list"
77 it { should contain_exec("add-apt-repository-#{title}").with(
79 'command' => "/usr/bin/add-apt-repository #{options} #{title}",
80 'unless' => "/usr/bin/test -s /etc/apt/sources.list.d/#{filename}",
81 'require' => ["File[sources.list.d]", "Package[#{package}]"],
82 'notify' => "Exec[apt_update]"
87 describe 'behind a proxy' do
93 proxy_host => "user:pass@proxy",
97 "#{title}-#{release}.list"
100 it { should contain_exec("add-apt-repository-#{title}").with(
102 "http_proxy=http://user:pass@proxy:8080",
103 "https_proxy=http://user:pass@proxy:8080",
105 'command' => "/usr/bin/add-apt-repository #{options} #{title}",
106 'unless' => "/usr/bin/test -s /etc/apt/sources.list.d/#{filename}",
107 'require' => ["File[sources.list.d]", "Package[#{package}]"],
108 'notify' => "Exec[apt_update]"
115 [ { :lsbdistcodename => 'natty',
116 :package => 'python-software-properties' },
117 { :lsbdistcodename => 'quantal',
118 :package => 'software-properties-common'},
120 context "on #{platform[:lsbdistcodename]}" do
121 describe "it should not error if package['#{platform[:package]}'] is already defined" do
122 let :pre_condition do
124 'package { "#{platform[:package]}": }->Apt::Ppa["ppa"]'
127 {:lsbdistcodename => '#{platform[:lsbdistcodename]}',
128 :operatingsystem => 'Ubuntu'}
130 let(:title) { "ppa" }
131 let(:release) { "#{platform[:lsbdistcodename]}" }
132 it { should contain_package('#{platform[:package]}') }
137 describe "without Class[apt] should raise a Puppet::Error" do
138 let(:release) { "natty" }
139 let(:title) { "ppa" }
140 it { expect { should contain_apt__ppa(title) }.to raise_error(Puppet::Error) }
143 describe "without release should raise a Puppet::Error" do
144 let(:title) { "ppa:" }
145 it { expect { should contain_apt__ppa(:release) }.to raise_error(Puppet::Error) }