Merge pull request #1020 from simondeziel/optional-gnupg
[puppet-modules/puppetlabs-apt.git] / spec / classes / apt_update_spec.rb
index c6336a9151c943347f4029eff026dc7a881cedbc..0db9a470b20394edea2b7e8cb9f78dd7e88877e0 100644 (file)
@@ -16,11 +16,11 @@ describe 'apt::update', type: :class do
               family: 'Debian',
               name: 'Debian',
               release: {
-                major: '8',
-                full: '8.0',
+                major: '9',
+                full: '9.0',
               },
               distro: {
-                codename: 'jessie',
+                codename: 'stretch',
                 id: 'Debian',
               },
             },
@@ -44,11 +44,11 @@ describe 'apt::update', type: :class do
             family: 'Debian',
             name: 'Debian',
             release: {
-              major: '8',
-              full: '8.0',
+              major: '9',
+              full: '9.0',
             },
             distro: {
-              codename: 'jessie',
+              codename: 'stretch',
               id: 'Debian',
             },
           },
@@ -61,6 +61,36 @@ describe 'apt::update', type: :class do
         is_expected.to contain_exec('apt_update').with('refreshonly' => false)
       end
     end
+    context 'and Exec[apt_update] refreshonly is overridden to true and has recent run' do
+      let(:facts) do
+        {
+          os: {
+            family: 'Debian',
+            name: 'Debian',
+            release: {
+              major: '9',
+              full: '9.0',
+            },
+            distro: {
+              codename: 'stretch',
+              id: 'Debian',
+            },
+          },
+          apt_update_last_success: Time.now.to_i,
+        }
+      end
+      let(:pre_condition) do
+        "
+        class{'::apt': update => {'frequency' => 'always' },}
+        Exec <| title=='apt_update' |> { refreshonly => true }
+        "
+      end
+
+      it 'skips an apt-get update run' do
+        # set the apt_update exec's refreshonly attribute to false
+        is_expected.to contain_exec('apt_update').with('refreshonly' => true)
+      end
+    end
   end
   context "when apt::update['frequency']='reluctantly'" do
     {
@@ -75,11 +105,11 @@ describe 'apt::update', type: :class do
               family: 'Debian',
               name: 'Debian',
               release: {
-                major: '8',
-                full: '8.0',
+                major: '9',
+                full: '9.0',
               },
               distro: {
-                codename: 'jessie',
+                codename: 'stretch',
                 id: 'Debian',
               },
             },
@@ -101,11 +131,11 @@ describe 'apt::update', type: :class do
             family: 'Debian',
             name: 'Debian',
             release: {
-              major: '8',
-              full: '8.0',
+              major: '9',
+              full: '9.0',
             },
             distro: {
-              codename: 'jessie',
+              codename: 'stretch',
               id: 'Debian',
             },
           },
@@ -129,11 +159,11 @@ describe 'apt::update', type: :class do
                 family: 'Debian',
                 name: 'Debian',
                 release: {
-                  major: '8',
-                  full: '8.0',
+                  major: '9',
+                  full: '9.0',
                 },
                 distro: {
-                  codename: 'jessie',
+                  codename: 'stretch',
                   id: 'Debian',
                 },
               },
@@ -155,11 +185,11 @@ describe 'apt::update', type: :class do
               family: 'Debian',
               name: 'Debian',
               release: {
-                major: '8',
-                full: '8.0',
+                major: '9',
+                full: '9.0',
               },
               distro: {
-                codename: 'jessie',
+                codename: 'stretch',
                 id: 'Debian',
               },
             },
@@ -180,11 +210,11 @@ describe 'apt::update', type: :class do
               family: 'Debian',
               name: 'Debian',
               release: {
-                major: '8',
-                full: '8.0',
+                major: '9',
+                full: '9.0',
               },
               distro: {
-                codename: 'jessie',
+                codename: 'stretch',
                 id: 'Debian',
               },
             },