ソースを参照

Fix source specs to test all key permutations

Previously only one should in each block was being evaluated. This moves each
should to its own block so that all values are tested. It also adds another set
of params so that all useful permutations of key, key_server, and key_content
are generated. It also replaces the previous ternary assignment for param_set
with a hash merge.
Matthaus Litteken 12 年 前
コミット
9059c4e
1 ファイル変更28 行追加16 行削除
  1. 28 16
      spec/defines/source_spec.rb

+ 28 - 16
spec/defines/source_spec.rb

@@ -29,11 +29,16 @@ describe 'apt::source', :type => :define do
       :key_server         => 'keyserver.debian.com',
       :key_server         => 'keyserver.debian.com',
       :pin                => '600',
       :pin                => '600',
       :key_content        => 'ABCD1234'
       :key_content        => 'ABCD1234'
+    },
+    {
+      :key                => 'key_name',
+      :key_server         => 'keyserver.debian.com',
+      :key_content        => false,
     }
     }
   ].each do |param_set|
   ].each do |param_set|
     describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
     describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
       let :param_hash do
       let :param_hash do
-        param_set == {} ? default_params : params
+        default_params.merge(param_set)
       end
       end
 
 
       let :params do
       let :params do
@@ -56,9 +61,9 @@ describe 'apt::source', :type => :define do
       it { should contain_apt__params }
       it { should contain_apt__params }
 
 
       it { should contain_file("#{title}.list").with({
       it { should contain_file("#{title}.list").with({
-          'path' => filename,
-          'ensure' => "file",
-          'owner'   => "root",
+          'path'      => filename,
+          'ensure'    => "file",
+          'owner'     => "root",
           'group'     => "root",
           'group'     => "root",
           'mode'      => 644,
           'mode'      => 644,
           'content'   => content
           'content'   => content
@@ -109,23 +114,12 @@ describe 'apt::source', :type => :define do
               "unless"  => "/usr/bin/apt-key list | /bin/grep '#{param_hash[:key]}'",
               "unless"  => "/usr/bin/apt-key list | /bin/grep '#{param_hash[:key]}'",
               "before"  => "File[#{title}.list]"
               "before"  => "File[#{title}.list]"
             })
             })
-            should_not contain_exec("Add key: #{param_hash[:key]} from #{param_hash[:key_server]} for #{title}").with({
-                "command" => "/usr/bin/apt-key adv --keyserver #{param_hash[:key_server]} --recv-keys #{param_hash[:key]}",
-                "unless"  => "/usr/bin/apt-key list | /bin/grep #{param_hash[:key]}",
-                "before"  => "File[#{title}.list]"
-            })
-
           else
           else
             should_not contain_exec("Add key: #{param_hash[:key]} from content for #{title}").with({
             should_not contain_exec("Add key: #{param_hash[:key]} from content for #{title}").with({
                 "command" => "/bin/echo '#{param_hash[:key_content]}' | /usr/bin/apt-key add -",
                 "command" => "/bin/echo '#{param_hash[:key_content]}' | /usr/bin/apt-key add -",
                 "unless"  => "/usr/bin/apt-key list | /bin/grep '#{param_hash[:key]}'",
                 "unless"  => "/usr/bin/apt-key list | /bin/grep '#{param_hash[:key]}'",
                 "before"  => "File[#{title}.list]"
                 "before"  => "File[#{title}.list]"
             })
             })
-            should contain_exec("Add key: #{param_hash[:key]} from #{param_hash[:key_server]} for #{title}").with({
-                "command" => "/usr/bin/apt-key adv --keyserver #{param_hash[:key_server]} --recv-keys #{param_hash[:key]}",
-                "unless"  => "/usr/bin/apt-key list | /bin/grep #{param_hash[:key]}",
-                "before"  => "File[#{title}.list]"
-            })
           end
           end
         else
         else
           should_not contain_exec("Add key: #{param_hash[:key]} from content for #{title}").with({
           should_not contain_exec("Add key: #{param_hash[:key]} from content for #{title}").with({
@@ -133,12 +127,30 @@ describe 'apt::source', :type => :define do
             "unless"    => "/usr/bin/apt-key list | /bin/grep '#{param_hash[:key]}'",
             "unless"    => "/usr/bin/apt-key list | /bin/grep '#{param_hash[:key]}'",
             "before"    => "File[#{title}.list]"
             "before"    => "File[#{title}.list]"
           })
           })
+        end
+      }
+
+      it {
+        if param_hash[:key]
+          if param_hash[:key_content]
+            should_not contain_exec("Add key: #{param_hash[:key]} from #{param_hash[:key_server]} for #{title}").with({
+                "command" => "/usr/bin/apt-key adv --keyserver #{param_hash[:key_server]} --recv-keys #{param_hash[:key]}",
+                "unless"  => "/usr/bin/apt-key list | /bin/grep #{param_hash[:key]}",
+                "before"  => "File[#{title}.list]"
+            })
+          else
+            should contain_exec("Add key: #{param_hash[:key]} from #{param_hash[:key_server]} for #{title}").with({
+                "command" => "/usr/bin/apt-key adv --keyserver #{param_hash[:key_server]} --recv-keys #{param_hash[:key]}",
+                "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 #{param_hash[:key_server]} for #{title}").with({
           should_not contain_exec("Add key: #{param_hash[:key]} from #{param_hash[:key_server]} for #{title}").with({
               "command" => "/usr/bin/apt-key adv --keyserver #{param_hash[:key_server]} --recv-keys #{param_hash[:key]}",
               "command" => "/usr/bin/apt-key adv --keyserver #{param_hash[:key_server]} --recv-keys #{param_hash[:key]}",
               "unless"  => "/usr/bin/apt-key list | /bin/grep #{param_hash[:key]}",
               "unless"  => "/usr/bin/apt-key list | /bin/grep #{param_hash[:key]}",
               "before"  => "File[#{title}.list]"
               "before"  => "File[#{title}.list]"
           })
           })
-
         end
         end
       }
       }
     end
     end