(#12823) Add apt::key defined type and modify apt::source to use it
[puppet-modules/puppetlabs-apt.git] / spec / defines / source_spec.rb
index 01949b60ec8dcdc57a268744aac285d87eba543e..3cafb5251bb93de44bc1a1e29b88e56f0683f567 100644 (file)
@@ -13,8 +13,9 @@ describe 'apt::source', :type => :define do
       :required_packages  => false,
       :key                => false,
       :key_server         => 'keyserver.ubuntu.com',
-      :pin                => false,
-      :key_content        => false
+      :key_content        => false,
+      :key_source         => false,
+      :pin                => false
     }
   end
 
@@ -29,6 +30,11 @@ describe 'apt::source', :type => :define do
       :key_server         => 'keyserver.debian.com',
       :pin                => '600',
       :key_content        => 'ABCD1234'
+    },
+    {
+      :key                => 'key_name',
+      :key_server         => 'keyserver.debian.com',
+      :key_content        => false,
     }
   ].each do |param_set|
     describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
@@ -56,9 +62,9 @@ describe 'apt::source', :type => :define do
       it { should contain_apt__params }
 
       it { should contain_file("#{title}.list").with({
-          'path' => filename,
-          'ensure' => "file",
-          'owner'   => "root",
+          'path'      => filename,
+          'ensure'    => "file",
+          'owner'     => "root",
           'group'     => "root",
           'mode'      => 644,
           'content'   => content
@@ -89,12 +95,14 @@ describe 'apt::source', :type => :define do
 
       it {
         if param_hash[:required_packages]
-          should contain_exec("/usr/bin/apt-get -y install #{param_hash[:required_packages]}").with({
+          should contain_exec("Required packages: '#{param_hash[:required_packages]}' for #{title}").with({
+            "command" => "/usr/bin/apt-get -y install #{param_hash[:required_packages]}",
             "subscribe"   => "File[#{title}.list]",
             "refreshonly" => true
           })
         else
-          should_not contain_exec("/usr/bin/apt-get -y install #{param_hash[:required_packages]}").with({
+          should_not contain_exec("Required packages: '#{param_hash[:required_packages]}' for #{title}").with({
+            "command"     => "/usr/bin/apt-get -y install #{param_hash[:required_packages]}",
             "subscribe"   => "File[#{title}.list]",
             "refreshonly" => true
           })
@@ -103,39 +111,23 @@ describe 'apt::source', :type => :define do
 
       it {
         if param_hash[:key]
-          if param_hash[:key_content]
-            should contain_exec("Add key: #{param_hash[:key]} from content").with({
-              "command" => "/bin/echo '#{param_hash[:key_content]}' | /usr/bin/apt-key add -",
-              "unless"  => "/usr/bin/apt-key list | /bin/grep '#{param_hash[:key]}'",
-              "before"  => "File[#{title}.list]"
-            })
-            should_not contain_exec("/usr/bin/apt-key adv --keyserver #{param_hash[:key_server]} --recv-keys #{param_hash[:key]}").with({
-              "unless"  => "/usr/bin/apt-key list | /bin/grep #{param_hash[:key]}",
-              "before"  => "File[#{title}.list]"
-            })
-
-          else
-            should contain_exec("/usr/bin/apt-key adv --keyserver #{param_hash[:key_server]} --recv-keys #{param_hash[:key]}").with({
-                "unless"  => "/usr/bin/apt-key list | /bin/grep #{param_hash[:key]}",
-                "before"  => "File[#{title}.list]"
-              })
-            should_not contain_exec("Add key: #{param_hash[:key]} from content").with({
-                "command" => "/bin/echo '#{param_hash[:key_content]}' | /usr/bin/apt-key add -",
-                "unless"  => "/usr/bin/apt-key list | /bin/grep '#{param_hash[:key]}'",
-                "before"  => "File[#{title}.list]"
-              })
-          end
-        else
-          should_not contain_exec("Add key: #{param_hash[:key]} from content").with({
-            "command"   => "/bin/echo '#{param_hash[:key_content]}' | /usr/bin/apt-key add -",
-            "unless"    => "/usr/bin/apt-key list | /bin/grep '#{param_hash[:key]}'",
-            "before"    => "File[#{title}.list]"
+          should contain_apt__key("Add key: #{param_hash[:key]} from Apt::Source #{title}").with({
+            "key"         => param_hash[:key],
+            "ensure"      => :present,
+            "key_server"  => param_hash[:key_server],
+            "key_content" => param_hash[:key_content],
+            "key_source"  => param_hash[:key_source],
+            "before"      => "File[#{title}.list]"
           })
-          should_not contain_exec("/usr/bin/apt-key adv --keyserver #{param_hash[:key_server]} --recv-keys #{param_hash[:key]}").with({
-              "unless"  => "/usr/bin/apt-key list | /bin/grep #{param_hash[:key]}",
-              "before"  => "File[#{title}.list]"
+        else
+          should_not contain_apt__key("Add key: #{param_hash[:key]} from Apt::Source #{title}").with({
+            "key"         => param_hash[:key],
+            "ensure"      => :present,
+            "key_server"  => param_hash[:key_server],
+            "key_content" => param_hash[:key_content],
+            "key_source"  => param_hash[:key_source],
+            "before"      => "File[#{title}.list]"
           })
-
         end
       }
     end