]> review.fuel-infra Code Review - puppet-modules/puppetlabs-apt.git/commitdiff
Update keyserver tests resource-api-experiments
authorDavid Schmitt <david.schmitt@puppet.com>
Wed, 27 Sep 2017 13:21:57 +0000 (14:21 +0100)
committerDavid Schmitt <david.schmitt@puppet.com>
Wed, 27 Sep 2017 13:47:10 +0000 (14:47 +0100)
spec/acceptance/apt_key_provider_spec.rb

index 0b1351e547f73526e05c00615f4263ae27af0053..c0cf41f5589805112f23bb17cd6686c535f858fa 100644 (file)
@@ -162,76 +162,52 @@ end
     end
 
     describe 'server =>' do
-      context 'hkps.pool.sks-keyservers.net' do
-        it 'works' do
-          pp = <<-EOS
-        #{typename} { 'puppetlabs':
-          id     => '#{PUPPETLABS_GPG_KEY_LONG_ID}',
-          ensure => 'present',
-          server => 'hkps.pool.sks-keyservers.net',
-        }
+      let(:pp_template) do
+        <<-EOS
+          #{typename} { 'puppetlabs':
+            id     => '#{PUPPETLABS_GPG_KEY_FINGERPRINT}',
+            ensure => 'present',
+            server => '%{server}',
+          }
         EOS
+      end
 
-          # Apply the manifest (Retry if timeout error is received from key pool)
-          retry_on_error_matching(MAX_TIMEOUT_RETRY, TIMEOUT_RETRY_WAIT, TIMEOUT_ERROR_MATCHER) do
-            apply_manifest(pp, catch_failures: true)
-          end
+      before(:each) do
+        shell_ex("apt-key del #{PUPPETLABS_GPG_KEY_SHORT_ID} > /dev/null")
+      end
 
-          apply_manifest(pp, catch_changes: true)
-          shell_ex(PUPPETLABS_KEY_CHECK_COMMAND)
-        end
+      after(:each) do
+        shell_ex("apt-key del #{PUPPETLABS_GPG_KEY_SHORT_ID} > /dev/null")
       end
 
-      context 'hkp://hkps.pool.sks-keyservers.net:80' do
-        it 'works' do
-          pp = <<-EOS
-        #{typename} { 'puppetlabs':
-          id     => '#{PUPPETLABS_GPG_KEY_FINGERPRINT}',
-          ensure => 'present',
-          server => 'hkp://hkps.pool.sks-keyservers.net:80',
-        }
-        EOS
+      def self.it_retrieves_the_key_from(server)
+        it "retrieves the key from '#{server}'" do
+          pp = pp_template % { server: server }
 
+          # Apply the manifest (Retry if timeout error is received from key pool)
           retry_on_error_matching(MAX_TIMEOUT_RETRY, TIMEOUT_RETRY_WAIT, TIMEOUT_ERROR_MATCHER) do
-            apply_manifest(pp, catch_failures: true)
+            execute_manifest(pp, trace: true, catch_failures: true)
           end
 
-          apply_manifest(pp, catch_changes: true)
-          shell_ex(PUPPETLABS_KEY_CHECK_COMMAND)
+          execute_manifest(pp, trace: true, catch_changes: true)
+          check_key(PUPPETLABS_GPG_KEY_FINGERPRINT)
         end
       end
 
-      context 'nonexistant.key.server' do
-        it 'fails' do
-          pp = <<-EOS
-        #{typename} { 'puppetlabs':
-          id     => '#{PUPPETLABS_GPG_KEY_LONG_ID}',
-          ensure => 'present',
-          server => 'nonexistant.key.server',
-        }
-        EOS
+      it_retrieves_the_key_from 'hkps.pool.sks-keyservers.net'
+      it_retrieves_the_key_from 'hkp://hkps.pool.sks-keyservers.net:80'
 
-          apply_manifest(pp, expect_failures: true) do |r|
-            expect(r.stderr).to match(%r{(Host not found|Couldn't resolve host)})
-          end
-        end
-      end
+      def self.it_returns_a_failure_for(server)
+        it "returns a failure for '#{server}'" do
+          pp = pp_template % { server: server }
 
-      context 'key server start with dot' do
-        it 'fails' do
-          pp = <<-EOS
-        #{typename} { 'puppetlabs':
-          id     => '#{PUPPETLABS_GPG_KEY_LONG_ID}',
-          ensure => 'present',
-          server => '.pgp.key.server',
-        }
-        EOS
-
-          apply_manifest(pp, expect_failures: true) do |r|
-            expect(r.stderr).to match(%r{Invalid value \".pgp.key.server\"})
-          end
+          result = execute_manifest(pp, trace: false, expect_failures: true)
+          expect(result.stderr).to match(%r{(Host not found|Couldn't resolve host|keyserver receive failed: No name|Invalid value)})
         end
       end
+
+      it_returns_a_failure_for 'nonexistant.key.server'
+      it_returns_a_failure_for '.pgp.key.server'
     end
 
     describe 'source =>' do