X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fconcat%2Fspec%2Funit%2Fdefines%2Fconcat_spec.rb;fp=3rdparty%2Fmodules%2Fconcat%2Fspec%2Funit%2Fdefines%2Fconcat_spec.rb;h=0000000000000000000000000000000000000000;hb=30caaa85aed7015ca0d77216bff175eebd917eb7;hp=ca698afde1c41b7163ab8cb4ae2f691a19d5a1a1;hpb=6f656bd4265e3dab13b9af2bf96e9044322e9d8f;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/concat/spec/unit/defines/concat_spec.rb b/3rdparty/modules/concat/spec/unit/defines/concat_spec.rb deleted file mode 100644 index ca698afde..000000000 --- a/3rdparty/modules/concat/spec/unit/defines/concat_spec.rb +++ /dev/null @@ -1,355 +0,0 @@ -require 'spec_helper' - -describe 'concat', :type => :define do - - shared_examples 'concat' do |title, params, id| - params = {} if params.nil? - id = 'root' if id.nil? - - # default param values - p = { - :ensure => 'present', - :path => title, - :owner => nil, - :group => nil, - :mode => '0644', - :warn => false, - :backup => 'puppet', - :replace => true, - }.merge(params) - - file_defaults = { - :backup => p[:backup], - } - - let(:title) { title } - let(:params) { params } - let(:facts) do - { - :id => id, - :osfamily => 'Debian', - :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', - :kernel => 'Linux', - :is_pe => false, - } - end - - if p[:ensure] == 'present' - it do - should contain_concat(title).with(file_defaults.merge({ - :ensure => 'present', - :owner => p[:owner], - :group => p[:group], - :mode => p[:mode], - :path => p[:path], - :backup => p[:backup], - :replace => p[:replace], - :selinux_ignore_defaults => p[:selinux_ignore_defaults], - :selrange => p[:selrange], - :selrole => p[:selrole], - :seltype => p[:seltype], - :seluser => p[:seluser], - })) - end - else - it do - should contain_concat(title).with(file_defaults.merge({ - :ensure => 'absent', - :backup => p[:backup], - })) - end - end - end - - context 'title' do - context 'without path param' do - # title/name is the default value for the path param. therefore, the - # title must be an absolute path unless path is specified - ['/foo', '/foo/bar', '/foo/bar/baz'].each do |title| - context title do - it_behaves_like 'concat', '/etc/foo.bar' - end - end - - ['./foo', 'foo', 'foo/bar'].each do |title| - context title do - let(:title) { title } - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /Stdlib::Unixpath/) - end - end - end - end - - context 'with path param' do - ['/foo', 'foo', 'foo/bar'].each do |title| - context title do - it_behaves_like 'concat', title, { :path => '/etc/foo.bar' } - end - end - end - - context 'with special characters in title' do - ['foo:bar', 'foo*bar', 'foo(bar)', 'foo@bar'].each do |title| - context title do - it_behaves_like 'concat', title, { :path => '/etc/foo.bar' } - end - end - end - end # title => - - context 'as non-root user' do - it_behaves_like 'concat', '/etc/foo.bar', {}, 'bob' - end - - context 'ensure =>' do - ['present', 'absent'].each do |ens| - context ens do - it_behaves_like 'concat', '/etc/foo.bar', { :ensure => ens } - end - end - - context 'invalid' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :ensure => 'invalid' }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /expects a match for Enum\['absent', 'present'\]/) - end - end - end # ensure => - - context 'path =>' do - context '/foo' do - it_behaves_like 'concat', '/etc/foo.bar', { :path => '/foo' } - end - - context 'false' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :path => false }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /Stdlib::Unixpath/) - end - end - - ['./foo', 'foo', 'foo/bar'].each do |path| - context path do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :path => path }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /Stdlib::Unixpath/) - end - end - end - end # path => - - context 'owner =>' do - ['apenney',1000,'1001'].each do |owner| - context owner do - it_behaves_like 'concat', '/etc/foo.bar', { :owner => owner } - end - end - - context 'false' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :owner => false }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /Evaluation Error.*expects.*String.*Boolean.*/) - end - end - end # owner => - - context 'group =>' do - ['apenney',1000,'1001'].each do |group| - context group do - it_behaves_like 'concat', '/etc/foo.bar', { :group => group } - end - end - - context 'false' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :group => false }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /Evaluation Error.*expects.*String.*Boolean.*/) - end - end - end # group => - - context 'mode =>' do - context '1755' do - it_behaves_like 'concat', '/etc/foo.bar', { :mode => '1755' } - end - - context 'false' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :mode => false }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /parameter 'mode' expects .*String.*/) - end - end - end # mode => - - context 'warn =>' do - [true, false, '# foo'].each do |warn| - context warn do - it_behaves_like 'concat', '/etc/foo.bar', { :warn => warn } - end - end - - context '(stringified boolean)' do - ['true', 'yes', 'on', 'false', 'no', 'off'].each do |warn| - context warn do - it_behaves_like 'concat', '/etc/foo.bar', { :warn => warn } - - it 'should create a warning' do - skip('rspec-puppet support for testing warning()') - end - end - end - end - - context '123' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :warn => 123 }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /parameter 'warn' expects .*Boolean.*String.*/) - end - end - end # warn => - - context 'show_diff =>' do - [true, false].each do |show_diff| - context show_diff do - it_behaves_like 'concat', '/etc/foo.bar', { :show_diff => show_diff } - end - end - - context '123' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :show_diff => 123 }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /parameter 'show_diff' expects .*Boolean.*/) - end - end - end # show_diff => - - context 'backup =>' do - ['reverse',false,true].each do |backup| - context "#{backup}" do - it_behaves_like 'concat', '/etc/foo.bar', { :backup => backup } - end - end - - context 'true' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :backup => [] }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /parameter 'backup' expects .*Boolean.*String.*/) - end - end - end # backup => - - context 'replace =>' do - [true, false].each do |replace| - context replace do - it_behaves_like 'concat', '/etc/foo.bar', { :replace => replace } - end - end - - context '123' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :replace => 123 }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /parameter 'replace' expects .*Boolean.*/) - end - end - end # replace => - - context 'order =>' do - ['alpha', 'numeric'].each do |order| - context order do - it_behaves_like 'concat', '/etc/foo.bar', { :order => order } - end - end - - context 'invalid' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :order => 'invalid' }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /expects a match for Enum\['alpha', 'numeric'\]/) - end - end - end # order => - - context 'ensure_newline =>' do - [true, false].each do |ensure_newline| - context 'true' do - it_behaves_like 'concat', '/etc/foo.bar', { :ensure_newline => ensure_newline} - end - end - - context '123' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :ensure_newline => 123 }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /parameter 'ensure_newline' expects a Boolean value/) - end - end - end # ensure_newline => - - context 'validate_cmd =>' do - context '/usr/bin/test -e %' do - it_behaves_like 'concat', '/etc/foo.bar', { :validate_cmd => '/usr/bin/test -e %' } - end - - [ 1234, true ].each do |cmd| - context cmd do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :validate_cmd => cmd }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /parameter 'validate_cmd' expects.*String.*/) - end - end - end - end # validate_cmd => - - context 'selinux_ignore_defaults =>' do - let(:title) { '/etc/foo.bar' } - - [true, false].each do |v| - context v do - it_behaves_like 'concat', '/etc/foo.bar', { :selinux_ignore_defaults => v } - end - end - - context '123' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :selinux_ignore_defaults => 123 }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /Evaluation Error.*expects.*Boolean.*/) - end - end - end # selinux_ignore_defaults => - - [ - :selrange, - :selrole, - :seltype, - :seluser, - ].each do |p| - context " #{p} =>" do - let(:title) { '/etc/foo.bar' } - - context 'foo' do - it_behaves_like 'concat', '/etc/foo.bar', { p => 'foo' } - end - - context 'false' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ p => false }} - it 'should fail' do - expect { catalogue }.to raise_error(Puppet::Error, /parameter '#{p}' expects.*String.*/) - end - end - end # #{p} => - end -end