Merge pull request #244 from apenney/fix-tests
[puppet-modules/puppetlabs-apt.git] / spec / defines / ppa_spec.rb
index d12c70c84d85333fa549669517b07654c9251b17..0c3bd75ed779dc64c8a9807eac679c9143b4dccf 100644 (file)
@@ -1,17 +1,28 @@
 require 'spec_helper'
 describe 'apt::ppa', :type => :define do
-  [ { :lsbdistrelease => '11.04',
+  [
+    {
+      :lsbdistrelease  => '11.04',
       :lsbdistcodename => 'natty',
-      :package => 'python-software-properties'},
-    { :lsbdistrelease => '12.10',
+      :operatingsystem => 'Ubuntu',
+      :lsbdistid       => 'Ubuntu',
+      :package         => 'python-software-properties'
+    },
+    {
+      :lsbdistrelease  => '12.10',
       :lsbdistcodename => 'quantal',
-      :package => 'software-properties-common'},
+      :operatingsystem => 'Ubuntu',
+      :lsbdistid       => 'Ubuntu',
+      :package         => 'software-properties-common'
+    },
   ].each do |platform|
     context "on #{platform[:lsbdistcodename]}" do
       let :facts do
         {
-          :lsbdistrelease => platform[:lsbdistrelease],
+          :lsbdistrelease  => platform[:lsbdistrelease],
           :lsbdistcodename => platform[:lsbdistcodename],
+          :operatingsystem => platform[:operatingsystem],
+          :lsbdistid       => platform[:lsbdistid],
         }
       end
       let :release do
@@ -45,8 +56,8 @@ describe 'apt::ppa', :type => :define do
 
           it { should contain_exec("add-apt-repository-#{t}").with(
             'command' => "/usr/bin/add-apt-repository #{options} #{t}",
-            'creates' => "/etc/apt/sources.list.d/#{filename}",
-            'require' => ["File[/etc/apt/sources.list.d]", "Package[#{package}]"],
+            'unless'  => "/usr/bin/test -s /etc/apt/sources.list.d/#{filename}",
+            'require' => ["File[sources.list.d]", "Package[#{package}]"],
             'notify'  => "Exec[apt_update]"
             )
           }
@@ -58,6 +69,29 @@ describe 'apt::ppa', :type => :define do
           }
         end
       end
+      describe 'without a proxy defined' do
+        let :title do
+          'rspec_ppa'
+        end
+        let :pre_condition do
+          'class { "apt":
+             proxy_host => false
+          }'
+        end
+        let :filename do
+          "#{title}-#{release}.list"
+        end
+
+        it { should contain_exec("add-apt-repository-#{title}").with(
+          'environment' => [],
+          'command'     => "/usr/bin/add-apt-repository #{options} #{title}",
+          'unless'      => "/usr/bin/test -s /etc/apt/sources.list.d/#{filename}",
+          'require'     => ["File[sources.list.d]", "Package[#{package}]"],
+          'notify'      => "Exec[apt_update]"
+          )
+        }
+      end
+
       describe 'behind a proxy' do
         let :title do
           'rspec_ppa'
@@ -77,8 +111,8 @@ describe 'apt::ppa', :type => :define do
             "https_proxy=http://user:pass@proxy:8080",
           ],
           'command'     => "/usr/bin/add-apt-repository #{options} #{title}",
-          'creates'     => "/etc/apt/sources.list.d/#{filename}",
-          'require'     => ["File[/etc/apt/sources.list.d]", "Package[#{package}]"],
+          'unless'      => "/usr/bin/test -s /etc/apt/sources.list.d/#{filename}",
+          'require'     => ["File[sources.list.d]", "Package[#{package}]"],
           'notify'      => "Exec[apt_update]"
           )
         }
@@ -86,7 +120,7 @@ describe 'apt::ppa', :type => :define do
     end
   end
 
-  [ { :lsbdistcodename => 'natty', 
+  [ { :lsbdistcodename => 'natty',
       :package => 'python-software-properties' },
     { :lsbdistcodename => 'quantal',
       :package => 'software-properties-common'},
@@ -98,7 +132,9 @@ describe 'apt::ppa', :type => :define do
            'package { "#{platform[:package]}": }->Apt::Ppa["ppa"]'
         end
         let :facts do
-          {:lsbdistcodename => '#{platform[:lsbdistcodename]}'}
+          {:lsbdistcodename => '#{platform[:lsbdistcodename]}',
+           :operatingsystem => 'Ubuntu',
+           :lsbdistid => 'Ubuntu'}
         end
         let(:title) { "ppa" }
         let(:release) { "#{platform[:lsbdistcodename]}" }