From: Matthaus Litteken Date: Fri, 24 Feb 2012 06:08:39 +0000 (-0800) Subject: Fix source specs to test all key permutations X-Git-Tag: 0.0.1~7^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=9059c4e2a8fc5d5d9ef6aa5d470037b827cd6f62;p=puppet-modules%2Fpuppetlabs-apt.git 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. --- diff --git a/spec/defines/source_spec.rb b/spec/defines/source_spec.rb index 95c5a54..cc06457 100644 --- a/spec/defines/source_spec.rb +++ b/spec/defines/source_spec.rb @@ -29,11 +29,16 @@ 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 let :param_hash do - param_set == {} ? default_params : params + default_params.merge(param_set) end let :params do @@ -56,9 +61,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 @@ -109,23 +114,12 @@ describe 'apt::source', :type => :define do "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 #{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_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 -", "unless" => "/usr/bin/apt-key list | /bin/grep '#{param_hash[:key]}'", "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 else 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]}'", "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({ "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