Move Package['python-software-properties'] to apt:ppa
[puppet-modules/puppetlabs-apt.git] / spec / defines / ppa_spec.rb
index 9d4750b737a2fdca34714a1334cb1e680c763039..ab86b93b2e35d0b145f1e601cebd139e7e066a9c 100644 (file)
@@ -18,16 +18,19 @@ describe 'apt::ppa', :type => :define do
         t.sub(/^ppa:/,'').gsub('/','-') << "-" << "#{release}.list"
       end
 
-      it { should contain_exec("apt-update-#{t}").with(
-        'command'     => '/usr/bin/aptitude update',
+      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-#{t}]",
-        'creates' => "/etc/apt/sources.list.d/#{filename}"
+        'creates' => "/etc/apt/sources.list.d/#{filename}",
+        'require' => "Package[python-software-properties]",
+        'notify'  => "Exec[apt_update]"
         )
       }
 
@@ -39,6 +42,19 @@ describe 'apt::ppa', :type => :define do
     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" }
@@ -49,5 +65,4 @@ describe 'apt::ppa', :type => :define do
     let(:title) { "ppa:" }
     it { expect { should contain_apt__ppa(:release) }.to raise_error(Puppet::Error) }
   end
-
 end