validate_bool($purge_sources_list, $purge_sources_list_d)
- if ! defined(Package['python-software-properties']) {
- package { 'python-software-properties': }
- }
-
$sources_list_content = $purge_sources_list ? {
false => undef,
true => "# Repos managed by puppet.\n",
$filename_without_ppa = regsubst($filename_without_slashes, '^ppa:','','G')
$sources_list_d_filename = "${filename_without_ppa}-${release}.list"
+ if ! defined(Package['python-software-properties']) {
+ package { 'python-software-properties': }
+ }
+
exec { "add-apt-repository-${name}":
command => "/usr/bin/add-apt-repository ${name}",
creates => "${sources_list_d}/${sources_list_d_filename}",
+ require => Package['python-software-properties'],
notify => Exec['apt_update'],
}
it { should include_class("apt::params") }
- it { should contain_package("python-software-properties") }
-
it {
if param_hash[:purge_sources_list]
should contain_file("sources.list").with({
end
end
end
-
- describe "it should not error if package['python-software-properties'] is already defined" do
- let(:pre_condition) { 'package { "python-software-properties": }->Class["Apt"]' }
- it { should contain_package("python-software-properties") }
- end
end
t.sub(/^ppa:/,'').gsub('/','-') << "-" << "#{release}.list"
end
+ it { should contain_package("python-software-properties") }
+
it { should contain_exec("apt_update").with(
'command' => '/usr/bin/apt-get update',
'refreshonly' => true
it { should contain_exec("add-apt-repository-#{t}").with(
'command' => "/usr/bin/add-apt-repository #{t}",
- 'notify' => "Exec[apt_update]",
- 'creates' => "/etc/apt/sources.list.d/#{filename}"
+ 'creates' => "/etc/apt/sources.list.d/#{filename}",
+ 'require' => "Package[python-software-properties]",
+ 'notify' => "Exec[apt_update]"
)
}
end
end
+ describe "it should not error if package['python-software-properties'] is already defined" do
+ let :pre_condition do
+ 'class {"apt": }' +
+ 'package { "python-software-properties": }->Apt::Ppa["ppa"]'
+ end
+ let :facts do
+ {:lsbdistcodename => 'natty'}
+ end
+ let(:title) { "ppa" }
+ let(:release) { "natty" }
+ it { should contain_package("python-software-properties") }
+ end
+
describe "without Class[apt] should raise a Puppet::Error" do
let(:release) { "natty" }
let(:title) { "ppa" }
let(:title) { "ppa:" }
it { expect { should contain_apt__ppa(:release) }.to raise_error(Puppet::Error) }
end
-
end