Merge pull request #169 from apenney/fix_ppa.pp
[puppet-modules/puppetlabs-apt.git] / spec / defines / ppa_spec.rb
index 3baa7e86572fde065302a52258349ae4200611e4..853fdb67f06197887bcde17442fe71e5db7a8762 100644 (file)
@@ -20,6 +20,9 @@ describe 'apt::ppa', :type => :define do
       let :package do
         "#{platform[:package]}"
       end
+      let :options do
+        "-y"
+      end
       ['ppa:dans_ppa', 'dans_ppa','ppa:dans-daily/ubuntu'].each do |t|
         describe "with title #{t}" do
           let :pre_condition do
@@ -41,8 +44,8 @@ describe 'apt::ppa', :type => :define do
           }
 
           it { should contain_exec("add-apt-repository-#{t}").with(
-            'command' => "/usr/bin/add-apt-repository #{t}",
-            'creates' => "/etc/apt/sources.list.d/#{filename}",
+            'command' => "/usr/bin/add-apt-repository #{options} #{t}",
+            'onlyif'  => "/usr/bin/test -s /etc/apt/sources.list.d/#{filename}",
             'require' => ["File[/etc/apt/sources.list.d]", "Package[#{package}]"],
             'notify'  => "Exec[apt_update]"
             )
@@ -55,6 +58,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}",
+          'onlyif'      => "/usr/bin/test -s /etc/apt/sources.list.d/#{filename}",
+          'require'     => ["File[/etc/apt/sources.list.d]", "Package[#{package}]"],
+          'notify'      => "Exec[apt_update]"
+          )
+        }
+      end
+
       describe 'behind a proxy' do
         let :title do
           'rspec_ppa'
@@ -73,8 +99,8 @@ describe 'apt::ppa', :type => :define do
             "http_proxy=http://user:pass@proxy:8080",
             "https_proxy=http://user:pass@proxy:8080",
           ],
-          'command'     => "/usr/bin/add-apt-repository #{title}",
-          'creates'     => "/etc/apt/sources.list.d/#{filename}",
+          'command'     => "/usr/bin/add-apt-repository #{options} #{title}",
+          'onlyif'      => "/usr/bin/test -s /etc/apt/sources.list.d/#{filename}",
           'require'     => ["File[/etc/apt/sources.list.d]", "Package[#{package}]"],
           'notify'      => "Exec[apt_update]"
           )