2 describe 'apt::ppa', :type => :define do
5 :lsbdistrelease => '11.04',
6 :lsbdistcodename => 'natty',
7 :operatingsystem => 'Ubuntu',
8 :lsbdistid => 'Ubuntu',
9 :package => 'python-software-properties'
12 :lsbdistrelease => '12.10',
13 :lsbdistcodename => 'quantal',
14 :operatingsystem => 'Ubuntu',
15 :lsbdistid => 'Ubuntu',
16 :package => 'software-properties-common'
19 context "on #{platform[:lsbdistcodename]}" do
22 :lsbdistrelease => platform[:lsbdistrelease],
23 :lsbdistcodename => platform[:lsbdistcodename],
24 :operatingsystem => platform[:operatingsystem],
25 :lsbdistid => platform[:lsbdistid],
29 "#{platform[:lsbdistcodename]}"
32 "#{platform[:package]}"
37 ['ppa:dans_ppa', 'dans_ppa','ppa:dans-daily/ubuntu'].each do |t|
38 describe "with title #{t}" do
46 t.sub(/^ppa:/,'').gsub('/','-') << "-" << "#{release}.list"
49 it { should contain_package("#{package}") }
51 it { should contain_exec("apt_update").with(
52 'command' => '/usr/bin/apt-get update',
57 it { should contain_exec("add-apt-repository-#{t}").with(
58 'command' => "/usr/bin/add-apt-repository #{options} #{t}",
59 'unless' => "/usr/bin/test -s /etc/apt/sources.list.d/#{filename}",
60 'require' => ["File[sources.list.d]", "Package[#{package}]"],
61 'notify' => "Exec[apt_update]"
65 it { should create_file("/etc/apt/sources.list.d/#{filename}").with(
67 'require' => "Exec[add-apt-repository-#{t}]"
72 describe 'without a proxy defined' do
82 "#{title}-#{release}.list"
85 it { should contain_exec("add-apt-repository-#{title}").with(
87 'command' => "/usr/bin/add-apt-repository #{options} #{title}",
88 'unless' => "/usr/bin/test -s /etc/apt/sources.list.d/#{filename}",
89 'require' => ["File[sources.list.d]", "Package[#{package}]"],
90 'notify' => "Exec[apt_update]"
95 describe 'behind a proxy' do
101 proxy_host => "user:pass@proxy",
105 "#{title}-#{release}.list"
108 it { should contain_exec("add-apt-repository-#{title}").with(
110 "http_proxy=http://user:pass@proxy:8080",
111 "https_proxy=http://user:pass@proxy:8080",
113 'command' => "/usr/bin/add-apt-repository #{options} #{title}",
114 'unless' => "/usr/bin/test -s /etc/apt/sources.list.d/#{filename}",
115 'require' => ["File[sources.list.d]", "Package[#{package}]"],
116 'notify' => "Exec[apt_update]"
123 [ { :lsbdistcodename => 'natty',
124 :package => 'python-software-properties' },
125 { :lsbdistcodename => 'quantal',
126 :package => 'software-properties-common'},
128 context "on #{platform[:lsbdistcodename]}" do
129 describe "it should not error if package['#{platform[:package]}'] is already defined" do
130 let :pre_condition do
132 'package { "#{platform[:package]}": }->Apt::Ppa["ppa"]'
135 {:lsbdistcodename => '#{platform[:lsbdistcodename]}',
136 :operatingsystem => 'Ubuntu',
137 :lsbdistid => 'Ubuntu'}
139 let(:title) { "ppa" }
140 let(:release) { "#{platform[:lsbdistcodename]}" }
141 it { should contain_package('#{platform[:package]}') }
146 describe "without Class[apt] should raise a Puppet::Error" do
147 let(:release) { "natty" }
148 let(:title) { "ppa" }
149 it { expect { should contain_apt__ppa(title) }.to raise_error(Puppet::Error) }
152 describe "without release should raise a Puppet::Error" do
153 let(:title) { "ppa:" }
154 it { expect { should contain_apt__ppa(:release) }.to raise_error(Puppet::Error) }