(GH-iac-334) Remove code specific to unsupported OSs
[puppet-modules/puppetlabs-apt.git] / spec / classes / apt_backports_spec.rb
index 5c65b57fdc43c34d2973adfbaeb171280edf8835..6f6d5309217c2129edd665dd24fdbae098fa80c5 100644 (file)
-#!/usr/bin/env rspec
+# frozen_string_literal: true
+
 require 'spec_helper'
 
-describe 'apt::backports', :type => :class do
-  let (:pre_condition) { "class{ '::apt': }" }
+describe 'apt::backports', type: :class do
+  let(:pre_condition) { "class{ '::apt': }" }
+
   describe 'debian/ubuntu tests' do
-    context 'defaults on deb' do
-      let(:facts) do
-        {
-          :os => { :family => 'Debian', :name => 'Debian', :release => { :major => '7', :full => '7.0' }},
-          :lsbdistid       => 'Debian',
-          :osfamily        => 'Debian',
-          :lsbdistcodename => 'wheezy',
-          :puppetversion   => Puppet.version,
-        }
-      end
-      it { is_expected.to contain_apt__source('backports').with({
-        :location => 'http://httpredir.debian.org/debian',
-        :key      => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
-        :repos    => 'main contrib non-free',
-        :release  => 'wheezy-backports',
-        :pin      => { 'priority' => 200, 'release' => 'wheezy-backports' },
-      })
-      }
-    end
-    context 'defaults on squeeze' do
+    context 'with defaults on deb' do
       let(:facts) do
         {
-          :os => { :family => 'Debian', :name => 'Debian', :release => { :major => '6', :full => '6.0' }},
-          :lsbdistid       => 'Debian',
-          :osfamily        => 'Debian',
-          :lsbdistcodename => 'squeeze',
-          :puppetversion   => Puppet.version,
+          os: {
+            family: 'Debian',
+            name: 'Debian',
+            release: {
+              major: '9',
+              full: '9.0',
+            },
+            distro: {
+              codename: 'stretch',
+              id: 'Debian',
+            },
+          },
         }
       end
-      it { is_expected.to contain_apt__source('backports').with({
-        :location => 'http://httpredir.debian.org/debian-backports',
-        :key      => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
-        :repos    => 'main contrib non-free',
-        :release  => 'squeeze-backports',
-        :pin      => { 'priority' => 200, 'release' => 'squeeze-backports' },
-      })
+
+      it {
+        is_expected.to contain_apt__source('backports').with(location: 'http://deb.debian.org/debian',
+                                                             repos: 'main contrib non-free',
+                                                             release: 'stretch-backports',
+                                                             pin: { 'priority' => 200, 'release' => 'stretch-backports' })
       }
     end
-    context 'defaults on ubuntu' do
+    context 'with defaults on ubuntu' do
       let(:facts) do
         {
-          :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '14', :full => '14.04' }},
-          :lsbdistid       => 'Ubuntu',
-          :osfamily        => 'Debian',
-          :lsbdistcodename => 'trusty',
-          :lsbdistrelease  => '14.04',
-          :puppetversion   => Puppet.version,
+          os: {
+            family: 'Debian',
+            name: 'Ubuntu',
+            release: {
+              major: '18',
+              full: '18.04',
+            },
+            distro: {
+              codename: 'bionac',
+              id: 'Ubuntu',
+            },
+          },
         }
       end
-      it { is_expected.to contain_apt__source('backports').with({
-        :location => 'http://archive.ubuntu.com/ubuntu',
-        :key      => '630239CC130E1A7FD81A27B140976EAF437D05B5',
-        :repos    => 'main universe multiverse restricted',
-        :release  => 'trusty-backports',
-        :pin      => { 'priority' => 200, 'release' => 'trusty-backports' },
-      })
+
+      it {
+        is_expected.to contain_apt__source('backports').with(location: 'http://archive.ubuntu.com/ubuntu',
+                                                             key: '630239CC130E1A7FD81A27B140976EAF437D05B5',
+                                                             repos: 'main universe multiverse restricted',
+                                                             release: 'bionac-backports',
+                                                             pin: { 'priority' => 200, 'release' => 'bionac-backports' })
       }
     end
-    context 'set everything' do
+    context 'with everything set' do
       let(:facts) do
         {
-          :lsbdistid       => 'Ubuntu',
-          :osfamily        => 'Debian',
-          :lsbdistcodename => 'trusty',
-          :lsbdistrelease  => '14.04',
-          :puppetversion   => Puppet.version,
+          os: {
+            family: 'Debian',
+            name: 'Ubuntu',
+            release: {
+              major: '18',
+              full: '18.04',
+            },
+            distro: {
+              codename: 'bionac',
+              id: 'Ubuntu',
+            },
+          },
         }
       end
       let(:params) do
         {
-          :location => 'http://archive.ubuntu.com/ubuntu-test',
-          :release  => 'vivid',
-          :repos    => 'main',
-          :key      => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
-          :pin      => '90',
+          location: 'http://archive.ubuntu.com/ubuntu-test',
+          release: 'vivid',
+          repos: 'main',
+          key: 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
+          pin: '90',
         }
       end
-      it { is_expected.to contain_apt__source('backports').with({
-        :location => 'http://archive.ubuntu.com/ubuntu-test',
-        :key      => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
-        :repos    => 'main',
-        :release  => 'vivid',
-        :pin      => { 'priority' => 90, 'release' => 'vivid' },
-      })
+
+      it {
+        is_expected.to contain_apt__source('backports').with(location: 'http://archive.ubuntu.com/ubuntu-test',
+                                                             key: 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
+                                                             repos: 'main',
+                                                             release: 'vivid',
+                                                             pin: { 'priority' => 90, 'release' => 'vivid' })
       }
     end
-    context 'set things with hashes' do
+    context 'when set things with hashes' do
       let(:facts) do
         {
-          :os => { :family => 'Debian', :name => 'Ubuntu', :release => { :major => '14', :full => '14.04' }},
-          :lsbdistid       => 'Ubuntu',
-          :osfamily        => 'Debian',
-          :lsbdistcodename => 'trusty',
-          :lsbdistrelease  => '14.04',
-          :puppetversion   => Puppet.version,
+          os: {
+            family: 'Debian',
+            name: 'Ubuntu',
+            release: {
+              major: '18',
+              full: '18.04',
+            },
+            distro: {
+              codename: 'bionac',
+              id: 'Ubuntu',
+            },
+          },
         }
       end
       let(:params) do
         {
-          :key => {
+          key: {
             'id' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
           },
-          :pin => {
+          pin: {
             'priority' => '90',
           },
         }
       end
-      it { is_expected.to contain_apt__source('backports').with({
-        :key      => { 'id' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553' },
-        :pin      => { 'priority' => '90' },
-      })
+
+      it {
+        is_expected.to contain_apt__source('backports').with(key: { 'id' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553' },
+                                                             pin: { 'priority' => '90' })
       }
     end
   end
   describe 'mint tests' do
     let(:facts) do
       {
-        :lsbdistid       => 'linuxmint',
-        :osfamily        => 'Debian',
-        :lsbdistcodename => 'qiana',
-        :puppetversion   => Puppet.version,
+        os: {
+          family: 'Debian',
+          name: 'LinuxMint',
+          release: {
+            major: '17',
+            full: '17',
+          },
+          distro: {
+            codename: 'qiana',
+            id: 'LinuxMint',
+          },
+        },
       }
     end
-    context 'sets all the needed things' do
+
+    context 'with all the needed things set' do
       let(:params) do
         {
-          :location => 'http://archive.ubuntu.com/ubuntu',
-          :release  => 'trusty-backports',
-          :repos    => 'main universe multiverse restricted',
-          :key      => '630239CC130E1A7FD81A27B140976EAF437D05B5',
+          location: 'http://archive.ubuntu.com/ubuntu',
+          release: 'trusty-backports',
+          repos: 'main universe multiverse restricted',
+          key: '630239CC130E1A7FD81A27B140976EAF437D05B5',
         }
       end
-      it { is_expected.to contain_apt__source('backports').with({
-        :location => 'http://archive.ubuntu.com/ubuntu',
-        :key      => '630239CC130E1A7FD81A27B140976EAF437D05B5',
-        :repos    => 'main universe multiverse restricted',
-        :release  => 'trusty-backports',
-        :pin      => { 'priority' => 200, 'release' => 'trusty-backports' },
-      })
+
+      it {
+        is_expected.to contain_apt__source('backports').with(location: 'http://archive.ubuntu.com/ubuntu',
+                                                             key: '630239CC130E1A7FD81A27B140976EAF437D05B5',
+                                                             repos: 'main universe multiverse restricted',
+                                                             release: 'trusty-backports',
+                                                             pin: { 'priority' => 200, 'release' => 'trusty-backports' })
       }
     end
-    context 'missing location' do
+    context 'with missing location' do
       let(:params) do
         {
-          :release  => 'trusty-backports',
-          :repos    => 'main universe multiverse restricted',
-          :key      => '630239CC130E1A7FD81A27B140976EAF437D05B5',
+          release: 'trusty-backports',
+          repos: 'main universe multiverse restricted',
+          key: '630239CC130E1A7FD81A27B140976EAF437D05B5',
         }
       end
+
       it do
-        expect {
-          subject.call
-        }.to raise_error(Puppet::Error, /If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key/)
+        is_expected.to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key})
       end
     end
-    context 'missing release' do
+    context 'with missing release' do
       let(:params) do
         {
-          :location => 'http://archive.ubuntu.com/ubuntu',
-          :repos    => 'main universe multiverse restricted',
-          :key      => '630239CC130E1A7FD81A27B140976EAF437D05B5',
+          location: 'http://archive.ubuntu.com/ubuntu',
+          repos: 'main universe multiverse restricted',
+          key: '630239CC130E1A7FD81A27B140976EAF437D05B5',
         }
       end
+
       it do
-        expect {
-          subject.call
-        }.to raise_error(Puppet::Error, /If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key/)
+        is_expected.to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key})
       end
     end
-    context 'missing repos' do
+    context 'with missing repos' do
       let(:params) do
         {
-          :location => 'http://archive.ubuntu.com/ubuntu',
-          :release  => 'trusty-backports',
-          :key      => '630239CC130E1A7FD81A27B140976EAF437D05B5',
+          location: 'http://archive.ubuntu.com/ubuntu',
+          release: 'trusty-backports',
+          key: '630239CC130E1A7FD81A27B140976EAF437D05B5',
         }
       end
+
       it do
-        expect {
-          subject.call
-        }.to raise_error(Puppet::Error, /If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key/)
+        is_expected.to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key})
       end
     end
-    context 'missing key' do
+    context 'with missing key' do
       let(:params) do
         {
-          :location => 'http://archive.ubuntu.com/ubuntu',
-          :release  => 'trusty-backports',
-          :repos    => 'main universe multiverse restricted',
+          location: 'http://archive.ubuntu.com/ubuntu',
+          release: 'trusty-backports',
+          repos: 'main universe multiverse restricted',
         }
       end
+
       it do
-        expect {
-          subject.call
-        }.to raise_error(Puppet::Error, /If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key/)
+        is_expected.to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key})
       end
     end
   end
   describe 'validation' do
     let(:facts) do
       {
-        :lsbdistid       => 'Ubuntu',
-        :osfamily        => 'Debian',
-        :lsbdistcodename => 'trusty',
-        :lsbdistrelease  => '14.04',
-        :puppetversion   => Puppet.version,
+        os: {
+          family: 'Debian',
+          name: 'Ubuntu',
+          release: {
+            major: '18',
+            full: '18.04',
+          },
+          distro: {
+            codename: 'bionac',
+            id: 'Ubuntu',
+          },
+        },
       }
     end
-    context 'invalid location' do
+
+    context 'with invalid location' do
       let(:params) do
         {
-          :location => true
+          location: true,
         }
       end
+
       it do
-        expect {
-          subject.call
-        }.to raise_error(Puppet::Error, /expects a String value/)
+        is_expected.to raise_error(Puppet::Error, %r{expects a})
       end
     end
-    context 'invalid release' do
+    context 'with invalid release' do
       let(:params) do
         {
-          :release => true
+          release: true,
         }
       end
+
       it do
-        expect {
-          subject.call
-        }.to raise_error(Puppet::Error, /expects a String value/)
+        is_expected.to raise_error(Puppet::Error, %r{expects a})
       end
     end
-    context 'invalid repos' do
+    context 'with invalid repos' do
       let(:params) do
         {
-          :repos => true
+          repos: true,
         }
       end
+
       it do
-        expect {
-          subject.call
-        }.to raise_error(Puppet::Error, /expects a String value/)
+        is_expected.to raise_error(Puppet::Error, %r{expects a})
       end
     end
-    context 'invalid key' do
+    context 'with invalid key' do
       let(:params) do
         {
-          :key => true
+          key: true,
         }
       end
+
       it do
-        expect {
-          subject.call
-        }.to raise_error(Puppet::Error, /expects a value of type String, Hash,/)
+        is_expected.to raise_error(Puppet::Error, %r{expects a})
       end
     end
-    context 'invalid pin' do
+    context 'with invalid pin' do
       let(:params) do
         {
-          :pin => true
+          pin: true,
         }
       end
+
       it do
-        expect {
-          subject.call
-        }.to raise_error(Puppet::Error, /parameter 'pin' expects a value of type Integer, Pattern/)
+        is_expected.to raise_error(Puppet::Error, %r{expects a})
       end
     end
   end