X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Fclasses%2Fapt_backports_spec.rb;h=e7a951a7583fdcb908c678710223a367bca1fa47;hb=refs%2Fheads%2Ftrusted-contributors;hp=052883166cd1d48c3dd4239258bc83ecaddfe493;hpb=dc3ead0ed5f4d735869565660c982983d379a519;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/spec/classes/apt_backports_spec.rb b/spec/classes/apt_backports_spec.rb index 0528831..e7a951a 100644 --- a/spec/classes/apt_backports_spec.rb +++ b/spec/classes/apt_backports_spec.rb @@ -1,57 +1,79 @@ +# frozen_string_literal: true + require 'spec_helper' describe 'apt::backports', type: :class do - let (:pre_condition) { "class{ '::apt': }" } + let(:pre_condition) { "class{ '::apt': }" } describe 'debian/ubuntu tests' do - context 'defaults on deb' do + context 'with 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, + 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://deb.debian.org/debian', - key: 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553', - repos: 'main contrib non-free', - release: 'wheezy-backports', - pin: { 'priority' => 200, 'release' => 'wheezy-backports' }) + expect(subject).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' }) + expect(subject).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 { - 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 @@ -60,211 +82,223 @@ describe 'apt::backports', type: :class do release: 'vivid', repos: 'main', key: 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553', - pin: '90', + 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' }) + expect(subject).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: { - 'id' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553', + 'id' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553' }, pin: { - 'priority' => '90', - }, + 'priority' => '90' + } } end it { - is_expected.to contain_apt__source('backports').with(key: { 'id' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553' }, - pin: { 'priority' => '90' }) + expect(subject).to contain_apt__source('backports').with(key: { 'id' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553' }, + pin: { 'priority' => '90' }) } end end + describe 'mint tests' do let(:facts) do { - os: { family: 'Debian', name: 'Linuxmint', release: { major: '17', full: '17' } }, - 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', + 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' }) + expect(subject).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', + key: '630239CC130E1A7FD81A27B140976EAF437D05B5' } end it do - expect { - subject.call - }.to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key}) + expect(subject).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', + key: '630239CC130E1A7FD81A27B140976EAF437D05B5' } end it do - expect { - subject.call - }.to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key}) + expect(subject).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', + key: '630239CC130E1A7FD81A27B140976EAF437D05B5' } end it do - expect { - subject.call - }.to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key}) + expect(subject).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', + repos: 'main universe multiverse restricted' } end it do - expect { - subject.call - }.to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key}) + expect(subject).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 { - 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 - 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, %r{expects a}) + expect(subject).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, %r{expects a}) + expect(subject).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, %r{expects a}) + expect(subject).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, %r{expects a}) + expect(subject).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, %r{expects a}) + expect(subject).to raise_error(Puppet::Error, %r{expects a}) end end end