Merge pull request #640 from ocadotechnology/dpkg_admin_lock
[puppet-modules/puppetlabs-apt.git] / spec / acceptance / apt_spec.rb
index d3bd76174ce8440e6907aff236983075c98af05e..df312a756041025184ffd2c8d21f5f0de5b7d601 100644 (file)
@@ -1,5 +1,9 @@
 require 'spec_helper_acceptance'
 
+MAX_TIMEOUT_RETRY              = 3
+TIMEOUT_RETRY_WAIT             = 5
+TIMEOUT_ERROR_MATCHER    = /no valid OpenPGP data found/
+
 describe 'apt class' do
 
   context 'reset' do
@@ -20,8 +24,8 @@ describe 'apt class' do
             'location' => 'http://apt.puppetlabs.com',
             'repos'    => 'main',
             'key'      => {
-              'id'     => '47B320EB4C7C375AA9DAE1A01054B7A24BD6EC30',
-              'server' => 'pgp.mit.edu',
+              'id'     => '6F6B15509CF8E59E6E469F327F438280EF8D349F',
+              'server' => 'hkps.pool.sks-keyservers.net',
             },
           },
         }
@@ -29,8 +33,8 @@ describe 'apt class' do
       class { 'apt':
         update => {
           'frequency' => 'always',
-          'timeout'   => '400',
-          'tries'     => '3',
+          'timeout'   => 400,
+          'tries'     => 3,
         },
         purge => {
           'sources.list'   => true,
@@ -42,7 +46,11 @@ describe 'apt class' do
       }
       EOS
 
-      apply_manifest(pp, :catch_failures => true)
+      #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
+
       apply_manifest(pp, :catch_failures => true)
     end
     it 'should still work' do