X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Fclasses%2Fapt_spec.rb;h=fb84c51cfbfe504ea21597f60c37e49305f85018;hb=4ea96b8d7ec3dd0d6acabb1d7718f96b8def614c;hp=e46ad050728dcb71fb14e490de3384b0981f6686;hpb=59d1f996fa72a6f1f0e24f51468eab14a19e6e41;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/spec/classes/apt_spec.rb b/spec/classes/apt_spec.rb index e46ad05..fb84c51 100644 --- a/spec/classes/apt_spec.rb +++ b/spec/classes/apt_spec.rb @@ -1,4 +1,37 @@ require 'spec_helper' + +sources_list = { ensure: 'file', + path: '/etc/apt/sources.list', + owner: 'root', + group: 'root', + mode: '0644', + notify: 'Class[Apt::Update]' } + +sources_list_d = { ensure: 'directory', + path: '/etc/apt/sources.list.d', + owner: 'root', + group: 'root', + mode: '0644', + purge: false, + recurse: false, + notify: 'Class[Apt::Update]' } + +preferences = { ensure: 'file', + path: '/etc/apt/preferences', + owner: 'root', + group: 'root', + mode: '0644', + notify: 'Class[Apt::Update]' } + +preferences_d = { ensure: 'directory', + path: '/etc/apt/preferences.d', + owner: 'root', + group: 'root', + mode: '0644', + purge: false, + recurse: false, + notify: 'Class[Apt::Update]' } + describe 'apt' do let(:facts) do { @@ -12,49 +45,27 @@ describe 'apt' do context 'defaults' do it { - is_expected.to contain_file('sources.list').that_notifies('Class[Apt::Update]').only_with(ensure: 'file', - path: '/etc/apt/sources.list', - owner: 'root', - group: 'root', - mode: '0644', - notify: 'Class[Apt::Update]') + is_expected.to contain_file('sources.list').that_notifies('Class[Apt::Update]').only_with(sources_list) } it { - is_expected.to contain_file('sources.list.d').that_notifies('Class[Apt::Update]').only_with(ensure: 'directory', - path: '/etc/apt/sources.list.d', - owner: 'root', - group: 'root', - mode: '0644', - purge: false, - recurse: false, - notify: 'Class[Apt::Update]') + is_expected.to contain_file('sources.list.d').that_notifies('Class[Apt::Update]').only_with(sources_list_d) } it { - is_expected.to contain_file('preferences').that_notifies('Class[Apt::Update]').only_with(ensure: 'file', - path: '/etc/apt/preferences', - owner: 'root', - group: 'root', - mode: '0644', - notify: 'Class[Apt::Update]') + is_expected.to contain_file('preferences').that_notifies('Class[Apt::Update]').only_with(preferences) } it { - is_expected.to contain_file('preferences.d').that_notifies('Class[Apt::Update]').only_with(ensure: 'directory', - path: '/etc/apt/preferences.d', - owner: 'root', - group: 'root', - mode: '0644', - purge: false, - recurse: false, - notify: 'Class[Apt::Update]') + is_expected.to contain_file('preferences.d').that_notifies('Class[Apt::Update]').only_with(preferences_d) } it 'lays down /etc/apt/apt.conf.d/15update-stamp' do is_expected.to contain_file('/etc/apt/apt.conf.d/15update-stamp').with(group: 'root', mode: '0644', - owner: 'root').with_content(/APT::Update::Post-Invoke-Success \{"touch \/var\/lib\/apt\/periodic\/update-success-stamp 2>\/dev\/null \|\| true";\};/) # rubocop:disable Metrics/LineLength + owner: 'root').with_content( + %r{APT::Update::Post-Invoke-Success {"touch /var/lib/apt/periodic/update-success-stamp 2>/dev/null || true";};}, + ) end it { @@ -70,9 +81,9 @@ describe 'apt' do it { is_expected.to contain_apt__setting('conf-proxy').with(priority: '01').with_content( - /Acquire::http::proxy "http:\/\/localhost:8080\/";/, + %r{Acquire::http::proxy "http://localhost:8080/";}, ).without_content( - %r{Acquire::https::proxy "DIRECT"}, + %r{Acquire::https::proxy}, ) } end @@ -82,9 +93,9 @@ describe 'apt' do it { is_expected.to contain_apt__setting('conf-proxy').with(priority: '01').with_content( - /Acquire::http::proxy "http:\/\/localhost:8180\/";/, + %r{Acquire::http::proxy "http://localhost:8180/";}, ).without_content( - %r{Acquire::https::proxy "DIRECT"}, + %r{Acquire::https::proxy}, ) } end @@ -94,9 +105,40 @@ describe 'apt' do it { is_expected.to contain_apt__setting('conf-proxy').with(priority: '01').with_content( - /Acquire::http::proxy "http:\/\/localhost:8080\/";/, + %r{Acquire::http::proxy "http://localhost:8080/";}, + ).with_content( + %r{Acquire::https::proxy "https://localhost:8080/";}, + ) + } + end + + context 'host=localhost and direct=true' do + let(:params) { { proxy: { 'host' => 'localhost', 'direct' => true } } } + + it { + is_expected.to contain_apt__setting('conf-proxy').with(priority: '01').with_content( + %r{Acquire::http::proxy "http://localhost:8080/";}, ).with_content( - /Acquire::https::proxy "https:\/\/localhost:8080\/";/, + %r{Acquire::https::proxy "DIRECT";}, + ) + } + end + + context 'host=localhost and https=true and direct=true' do + let(:params) { { proxy: { 'host' => 'localhost', 'https' => true, 'direct' => true } } } + + it { + is_expected.to contain_apt__setting('conf-proxy').with(priority: '01').with_content( + %r{Acquire::http::proxy "http://localhost:8080/";}, + ).with_content( + %r{Acquire::https::proxy "https://localhost:8080/";}, + ) + } + it { + is_expected.to contain_apt__setting('conf-proxy').with(priority: '01').with_content( + %r{Acquire::http::proxy "http://localhost:8080/";}, + ).without_content( + %r{Acquire::https::proxy "DIRECT";}, ) } end @@ -175,14 +217,14 @@ describe 'apt' do is_expected.to contain_apt__setting('list-debian_unstable').with(ensure: 'present') } - it { is_expected.to contain_file('/etc/apt/sources.list.d/debian_unstable.list').with_content(/^deb http:\/\/debian.mirror.iweb.ca\/debian\/ unstable main contrib non-free$/) } - it { is_expected.to contain_file('/etc/apt/sources.list.d/debian_unstable.list').with_content(/^deb-src http:\/\/debian.mirror.iweb.ca\/debian\/ unstable main contrib non-free$/) } + it { is_expected.to contain_file('/etc/apt/sources.list.d/debian_unstable.list').with_content(%r{^deb http://debian.mirror.iweb.ca/debian/ unstable main contrib non-free$}) } + it { is_expected.to contain_file('/etc/apt/sources.list.d/debian_unstable.list').with_content(%r{^deb-src http://debian.mirror.iweb.ca/debian/ unstable main contrib non-free$}) } it { is_expected.to contain_apt__setting('list-puppetlabs').with(ensure: 'present') } - it { is_expected.to contain_file('/etc/apt/sources.list.d/puppetlabs.list').with_content(/^deb http:\/\/apt.puppetlabs.com precise main$/) } + it { is_expected.to contain_file('/etc/apt/sources.list.d/puppetlabs.list').with_content(%r{^deb http://apt.puppetlabs.com precise main$}) } end context 'with confs defined on valid osfamily' do @@ -314,9 +356,7 @@ describe 'apt' do let(:params) { { purge: { 'sources.list' => 'banana' } } } it do - expect { - subject.call - }.to raise_error(Puppet::Error) + is_expected.to raise_error(Puppet::Error) end end @@ -324,9 +364,7 @@ describe 'apt' do let(:params) { { purge: { 'sources.list.d' => 'banana' } } } it do - expect { - subject.call - }.to raise_error(Puppet::Error) + is_expected.to raise_error(Puppet::Error) end end @@ -334,9 +372,7 @@ describe 'apt' do let(:params) { { purge: { 'preferences' => 'banana' } } } it do - expect { - subject.call - }.to raise_error(Puppet::Error) + is_expected.to raise_error(Puppet::Error) end end @@ -344,9 +380,7 @@ describe 'apt' do let(:params) { { purge: { 'preferences.d' => 'banana' } } } it do - expect { - subject.call - }.to raise_error(Puppet::Error) + is_expected.to raise_error(Puppet::Error) end end end