From 520b5e876c5a31b9f4bf38a3714a125316833dd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20Can=C3=A9vet?= Date: Mon, 22 Dec 2014 18:34:19 +0100 Subject: Fix unit tests when using future parser --- spec/defines/augeas_lens_spec.rb | 158 +++++++++++++++++++++++---------------- 1 file changed, 95 insertions(+), 63 deletions(-) (limited to 'spec/defines/augeas_lens_spec.rb') diff --git a/spec/defines/augeas_lens_spec.rb b/spec/defines/augeas_lens_spec.rb index 5318d8d..7feeefb 100644 --- a/spec/defines/augeas_lens_spec.rb +++ b/spec/defines/augeas_lens_spec.rb @@ -2,79 +2,111 @@ require 'spec_helper' describe 'augeas::lens' do let (:title) { 'foo' } - let (:facts) { { - :augeas_lens_dir => :undef, - :augeas_ruby_version => :undef, - :augeas_version => :undef, - :osfamily => 'RedHat', - :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } } - context 'when no lens_source is passed' do + + context 'when not declaring augeas class first' do + let (:params) do + { + :lens_source => '/tmp/foo.aug', + } + end + it 'should error' do expect { is_expected.to contain_file('/usr/share/augeas/lenses/foo.aug') - }.to raise_error(Puppet::Error, /Must pass lens_source/) + }.to raise_error(Puppet::Error, /You must declare the augeas class/) end end - context 'when lens_source is passed' do - let (:params) { { - :lens_source => '/tmp/foo.aug', - } } + context 'when declaring augeas class first' do - it { is_expected.to contain_file('/usr/share/augeas/lenses/foo.aug') } - it { is_expected.to contain_exec('Typecheck lens foo') } - it { is_expected.not_to contain_file('/usr/share/augeas/lenses/tests/test_foo.aug') } - it { is_expected.not_to contain_exec('Test lens foo') } - end + on_supported_os.each do |os, facts| + context "on #{os}" do + let(:facts) do + facts.merge({ + :augeasversion => :undef, + }) + end - context 'when lens_source and test_source are passed' do - let (:params) { { - :lens_source => '/tmp/foo.aug', - :test_source => '/tmp/test_foo.aug', - } } + context 'With standard augeas version' do - it { is_expected.to contain_file('/usr/share/augeas/lenses/foo.aug') } - it { is_expected.to contain_exec('Typecheck lens foo') } - it { is_expected.to contain_file('/usr/share/augeas/lenses/tests/test_foo.aug') } - it { is_expected.to contain_exec('Test lens foo') } - end + let(:pre_condition) do + "class { '::augeas': }" + end - context 'when stock_since is passed and augeas is older' do - let (:params) { { - :lens_source => '/tmp/foo.aug', - :stock_since => '1.2.3', - } } - - let (:facts) { { - :augeas_lens_dir => :undef, - :augeas_version => :undef, - :augeasversion => '1.0.0', - :augeas_ruby_version => :undef, - :osfamily => 'RedHat', - :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } } - - it { is_expected.to contain_file('/usr/share/augeas/lenses/foo.aug') } - it { is_expected.to contain_exec('Typecheck lens foo') } - end + context 'when no lens_source is passed' do + it 'should error' do + expect { + is_expected.to contain_file('/usr/share/augeas/lenses/foo.aug') + }.to raise_error(Puppet::Error, /Must pass lens_source/) + end + end + + context 'when lens_source is passed' do + let (:params) do + { + :lens_source => '/tmp/foo.aug', + } + end + + it { is_expected.to contain_file('/usr/share/augeas/lenses/foo.aug') } + it { is_expected.to contain_exec('Typecheck lens foo') } + it { is_expected.not_to contain_file('/usr/share/augeas/lenses/tests/test_foo.aug') } + it { is_expected.not_to contain_exec('Test lens foo') } + end - context 'when stock_since is passed and augeas is newer' do - let (:params) { { - :lens_source => '/tmp/foo.aug', - :stock_since => '1.2.3', - } } - - let (:facts) { { - :augeas_lens_dir => :undef, - :augeas_version => :undef, - :augeasversion => '1.5.0', - :augeas_ruby_version => :undef, - :osfamily => 'RedHat', - :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - } } - - it { is_expected.not_to contain_file('/usr/share/augeas/lenses/foo.aug') } - it { is_expected.not_to contain_exec('Typecheck lens foo') } + context 'when lens_source and test_source are passed' do + let (:params) do + { + :lens_source => '/tmp/foo.aug', + :test_source => '/tmp/test_foo.aug', + } + end + + it { is_expected.to contain_file('/usr/share/augeas/lenses/foo.aug') } + it { is_expected.to contain_exec('Typecheck lens foo') } + it { is_expected.to contain_file('/usr/share/augeas/lenses/tests/test_foo.aug') } + it { is_expected.to contain_exec('Test lens foo') } + end + end + + context 'when stock_since is passed and augeas is older' do + let (:params) do + { + :lens_source => '/tmp/foo.aug', + :stock_since => '1.2.3', + } + end + + let(:pre_condition) do + "class { '::augeas': version => '1.0.0' }" + end + + it { is_expected.to contain_file('/usr/share/augeas/lenses/foo.aug') } + it { is_expected.to contain_exec('Typecheck lens foo') } + end + + context 'when stock_since is passed and augeas is newer' do + let (:params) do + { + :lens_source => '/tmp/foo.aug', + :stock_since => '1.2.3', + } + end + + let(:pre_condition) do + "class { '::augeas': version => '1.3.0' }" + end + + it do + pending "undefined method `negative_failure_message'" + is_expected.not_to contain_file('/usr/share/augeas/lenses/foo.aug') + end + it do + pending "undefined method `negative_failure_message'" + is_expected.not_to contain_exec('Typecheck lens foo') + end + end + end + end end end -- cgit v1.2.3