diff --git a/spec/acceptance/backup_spec.rb b/spec/acceptance/backup_spec.rb index 7b2858d..5440781 100644 --- a/spec/acceptance/backup_spec.rb +++ b/spec/acceptance/backup_spec.rb @@ -1,101 +1,101 @@ require 'spec_helper_acceptance' describe 'concat backup parameter' do context '=> puppet' do before :all do shell('rm -rf /tmp/concat') shell('mkdir -p /tmp/concat') shell("/bin/echo 'old contents' > /tmp/concat/file") end pp = <<-EOS concat { '/tmp/concat/file': backup => 'puppet', } concat::fragment { 'new file': target => '/tmp/concat/file', content => 'new contents', } EOS it 'applies the manifest twice with "Filebucketed" stdout and no stderr' do apply_manifest(pp, :catch_failures => true) do |r| expect(r.stderr).to eq("") expect(r.stdout).to match(/Filebucketed \/tmp\/concat\/file to puppet with sum 0140c31db86293a1a1e080ce9b91305f/) # sum is for file contents of 'old contents' end - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should contain 'new contents' } end end context '=> .backup' do before :all do shell('rm -rf /tmp/concat') shell('mkdir -p /tmp/concat') shell("/bin/echo 'old contents' > /tmp/concat/file") end pp = <<-EOS concat { '/tmp/concat/file': backup => '.backup', } concat::fragment { 'new file': target => '/tmp/concat/file', content => 'new contents', } EOS # XXX Puppet doesn't mention anything about filebucketing with a given # extension like .backup it 'applies the manifest twice no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should contain 'new contents' } end describe file('/tmp/concat/file.backup') do it { should be_file } it { should contain 'old contents' } end end # XXX The backup parameter uses validate_string() and thus can't be the # boolean false value, but the string 'false' has the same effect in Puppet 3 context "=> 'false'" do before :all do shell('rm -rf /tmp/concat') shell('mkdir -p /tmp/concat') shell("/bin/echo 'old contents' > /tmp/concat/file") end pp = <<-EOS concat { '/tmp/concat/file': backup => '.backup', } concat::fragment { 'new file': target => '/tmp/concat/file', content => 'new contents', } EOS it 'applies the manifest twice with no "Filebucketed" stdout and no stderr' do apply_manifest(pp, :catch_failures => true) do |r| expect(r.stderr).to eq("") expect(r.stdout).to_not match(/Filebucketed/) end - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should contain 'new contents' } end end end diff --git a/spec/acceptance/concat_spec.rb b/spec/acceptance/concat_spec.rb index 89919cc..8a45e97 100644 --- a/spec/acceptance/concat_spec.rb +++ b/spec/acceptance/concat_spec.rb @@ -1,204 +1,204 @@ require 'spec_helper_acceptance' describe 'basic concat test' do shared_examples 'successfully_applied' do |pp| it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file("#{default['puppetvardir']}/concat") do it { should be_directory } it { should be_owned_by 'root' } it { should be_grouped_into 'root' } it { should be_mode 755 } end describe file("#{default['puppetvardir']}/concat/bin") do it { should be_directory } it { should be_owned_by 'root' } it { should be_grouped_into 'root' } it { should be_mode 755 } end describe file("#{default['puppetvardir']}/concat/bin/concatfragments.sh") do it { should be_file } it { should be_owned_by 'root' } #it { should be_grouped_into 'root' } it { should be_mode 755 } end describe file("#{default['puppetvardir']}/concat/_tmp_concat_file") do it { should be_directory } it { should be_owned_by 'root' } it { should be_grouped_into 'root' } it { should be_mode 750 } end describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments") do it { should be_directory } it { should be_owned_by 'root' } it { should be_grouped_into 'root' } it { should be_mode 750 } end describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments.concat") do it { should be_file } it { should be_owned_by 'root' } it { should be_grouped_into 'root' } it { should be_mode 640 } end describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments.concat.out") do it { should be_file } it { should be_owned_by 'root' } it { should be_grouped_into 'root' } it { should be_mode 640 } end end context 'owner/group root' do pp = <<-EOS concat { '/tmp/concat/file': owner => 'root', group => 'root', mode => '0644', } concat::fragment { '1': target => '/tmp/concat/file', content => '1', order => '01', } concat::fragment { '2': target => '/tmp/concat/file', content => '2', order => '02', } EOS it_behaves_like 'successfully_applied', pp describe file('/tmp/concat/file') do it { should be_file } it { should be_owned_by 'root' } it { should be_grouped_into 'root' } it { should be_mode 644 } it { should contain '1' } it { should contain '2' } end describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments/01_1") do it { should be_file } it { should be_owned_by 'root' } it { should be_grouped_into 'root' } it { should be_mode 640 } end describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments/02_2") do it { should be_file } it { should be_owned_by 'root' } it { should be_grouped_into 'root' } it { should be_mode 640 } end end context 'owner/group non-root' do before(:all) do shell "groupadd -g 64444 bob" shell "useradd -u 42 -g 64444 bob" end after(:all) do shell "userdel bob" end pp=" concat { '/tmp/concat/file': owner => 'bob', group => 'bob', mode => '0644', } concat::fragment { '1': target => '/tmp/concat/file', content => '1', order => '01', } concat::fragment { '2': target => '/tmp/concat/file', content => '2', order => '02', } " it_behaves_like 'successfully_applied', pp describe file('/tmp/concat/file') do it { should be_file } it { should be_owned_by 'bob' } it { should be_grouped_into 'bob' } it { should be_mode 644 } it { should contain '1' } it { should contain '2' } end describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments/01_1") do it { should be_file } it { should be_owned_by 'root' } it { should be_grouped_into 'root' } it { should be_mode 640 } it { should contain '1' } end describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments/02_2") do it { should be_file } it { should be_owned_by 'root' } it { should be_grouped_into 'root' } it { should be_mode 640 } it { should contain '2' } end end context 'ensure' do context 'works when set to present with path set' do pp=" concat { 'file': ensure => present, path => '/tmp/concat/file', mode => '0644', } concat::fragment { '1': target => 'file', content => '1', order => '01', } " it_behaves_like 'successfully_applied', pp describe file('/tmp/concat/file') do it { should be_file } it { should be_mode 644 } it { should contain '1' } end end context 'works when set to absent with path set' do pp=" concat { 'file': ensure => absent, path => '/tmp/concat/file', mode => '0644', } concat::fragment { '1': target => 'file', content => '1', order => '01', } " # Can't used shared examples as this will always trigger the exec when # absent is set. it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_failures => true) end describe file('/tmp/concat/file') do it { should_not be_file } end end end end diff --git a/spec/acceptance/deprecation_warnings_spec.rb b/spec/acceptance/deprecation_warnings_spec.rb index f139d81..6f8fce1 100644 --- a/spec/acceptance/deprecation_warnings_spec.rb +++ b/spec/acceptance/deprecation_warnings_spec.rb @@ -1,230 +1,230 @@ require 'spec_helper_acceptance' describe 'deprecation warnings' do shared_examples 'has_warning'do |pp, w| it 'applies the manifest twice with a stderr regex' do expect(apply_manifest(pp, :catch_failures => true).stderr).to match(/#{Regexp.escape(w)}/m) expect(apply_manifest(pp, :catch_changes => true).stderr).to match(/#{Regexp.escape(w)}/m) end end context 'concat gnu parameter' do pp = <<-EOS concat { '/tmp/concat/file': gnu => 'foo', } concat::fragment { 'foo': target => '/tmp/concat/file', content => 'bar', } EOS w = 'The $gnu parameter to concat is deprecated and has no effect' it_behaves_like 'has_warning', pp, w end context 'concat warn parameter =>' do ['true', 'yes', 'on'].each do |warn| context warn do pp = <<-EOS concat { '/tmp/concat/file': warn => '#{warn}', } concat::fragment { 'foo': target => '/tmp/concat/file', content => 'bar', } EOS w = 'Using stringified boolean values (\'true\', \'yes\', \'on\', \'false\', \'no\', \'off\') to represent boolean true/false as the $warn parameter to concat is deprecated and will be treated as the warning message in a future release' it_behaves_like 'has_warning', pp, w describe file('/tmp/concat/file') do it { should be_file } it { should contain '# This file is managed by Puppet. DO NOT EDIT.' } it { should contain 'bar' } end end end ['false', 'no', 'off'].each do |warn| context warn do pp = <<-EOS concat { '/tmp/concat/file': warn => '#{warn}', } concat::fragment { 'foo': target => '/tmp/concat/file', content => 'bar', } EOS w = 'Using stringified boolean values (\'true\', \'yes\', \'on\', \'false\', \'no\', \'off\') to represent boolean true/false as the $warn parameter to concat is deprecated and will be treated as the warning message in a future release' it_behaves_like 'has_warning', pp, w describe file('/tmp/concat/file') do it { should be_file } it { should_not contain '# This file is managed by Puppet. DO NOT EDIT.' } it { should contain 'bar' } end end end end context 'concat::fragment ensure parameter' do context 'target file exists' do before(:all) do shell("/bin/echo 'file1 contents' > /tmp/concat/file1") end after(:all) do # XXX this test may leave behind a symlink in the fragment directory # which could cause warnings and/or breakage from the subsequent tests # unless we clean it up. shell('rm -rf /tmp/concat /var/lib/puppet/concat') shell('mkdir -p /tmp/concat') end pp = <<-EOS concat { '/tmp/concat/file': } concat::fragment { 'foo': target => '/tmp/concat/file', ensure => '/tmp/concat/file1', } EOS w = 'Passing a value other than \'present\' or \'absent\' as the $ensure parameter to concat::fragment is deprecated. If you want to use the content of a file as a fragment please use the $source parameter.' it_behaves_like 'has_warning', pp, w describe file('/tmp/concat/file') do it { should be_file } it { should contain 'file1 contents' } end describe 'the fragment can be changed from a symlink to a plain file' do pp = <<-EOS concat { '/tmp/concat/file': } concat::fragment { 'foo': target => '/tmp/concat/file', content => 'new content', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should contain 'new content' } it { should_not contain 'file1 contents' } end end end # target file exists context 'target does not exist' do pp = <<-EOS concat { '/tmp/concat/file': } concat::fragment { 'foo': target => '/tmp/concat/file', ensure => '/tmp/concat/file1', } EOS w = 'Passing a value other than \'present\' or \'absent\' as the $ensure parameter to concat::fragment is deprecated. If you want to use the content of a file as a fragment please use the $source parameter.' it_behaves_like 'has_warning', pp, w describe file('/tmp/concat/file') do it { should be_file } end describe 'the fragment can be changed from a symlink to a plain file' do pp = <<-EOS concat { '/tmp/concat/file': } concat::fragment { 'foo': target => '/tmp/concat/file', content => 'new content', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should contain 'new content' } end end end # target file exists end # concat::fragment ensure parameter context 'concat::fragment mode parameter' do pp = <<-EOS concat { '/tmp/concat/file': } concat::fragment { 'foo': target => '/tmp/concat/file', content => 'bar', mode => 'bar', } EOS w = 'The $mode parameter to concat::fragment is deprecated and has no effect' it_behaves_like 'has_warning', pp, w end context 'concat::fragment owner parameter' do pp = <<-EOS concat { '/tmp/concat/file': } concat::fragment { 'foo': target => '/tmp/concat/file', content => 'bar', owner => 'bar', } EOS w = 'The $owner parameter to concat::fragment is deprecated and has no effect' it_behaves_like 'has_warning', pp, w end context 'concat::fragment group parameter' do pp = <<-EOS concat { '/tmp/concat/file': } concat::fragment { 'foo': target => '/tmp/concat/file', content => 'bar', group => 'bar', } EOS w = 'The $group parameter to concat::fragment is deprecated and has no effect' it_behaves_like 'has_warning', pp, w end context 'concat::fragment backup parameter' do pp = <<-EOS concat { '/tmp/concat/file': } concat::fragment { 'foo': target => '/tmp/concat/file', content => 'bar', backup => 'bar', } EOS w = 'The $backup parameter to concat::fragment is deprecated and has no effect' it_behaves_like 'has_warning', pp, w end context 'include concat::setup' do pp = <<-EOS include concat::setup EOS w = 'concat::setup is deprecated as a public API of the concat module and should no longer be directly included in the manifest.' it_behaves_like 'has_warning', pp, w end end diff --git a/spec/acceptance/empty_spec.rb b/spec/acceptance/empty_spec.rb index 0999528..0a7ac86 100644 --- a/spec/acceptance/empty_spec.rb +++ b/spec/acceptance/empty_spec.rb @@ -1,24 +1,24 @@ require 'spec_helper_acceptance' describe 'concat force empty parameter' do context 'should run successfully' do pp = <<-EOS concat { '/tmp/concat/file': owner => root, group => root, mode => '0644', force => true, } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should_not contain '1\n2' } end end end diff --git a/spec/acceptance/fragment_source_spec.rb b/spec/acceptance/fragment_source_spec.rb index 3afd534..7edd380 100644 --- a/spec/acceptance/fragment_source_spec.rb +++ b/spec/acceptance/fragment_source_spec.rb @@ -1,134 +1,134 @@ require 'spec_helper_acceptance' describe 'concat::fragment source' do context 'should read file fragments from local system' do before(:all) do shell("/bin/echo 'file1 contents' > /tmp/concat/file1") shell("/bin/echo 'file2 contents' > /tmp/concat/file2") end pp = <<-EOS concat { '/tmp/concat/foo': } concat::fragment { '1': target => '/tmp/concat/foo', source => '/tmp/concat/file1', } concat::fragment { '2': target => '/tmp/concat/foo', content => 'string1 contents', } concat::fragment { '3': target => '/tmp/concat/foo', source => '/tmp/concat/file2', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/foo') do it { should be_file } it { should contain 'file1 contents' } it { should contain 'string1 contents' } it { should contain 'file2 contents' } end end # should read file fragments from local system context 'should create files containing first match only.' do before(:all) do shell('rm -rf /tmp/concat /var/lib/puppet/concat') shell('mkdir -p /tmp/concat') shell("/bin/echo 'file1 contents' > /tmp/concat/file1") shell("/bin/echo 'file2 contents' > /tmp/concat/file2") end pp = <<-EOS concat { '/tmp/concat/result_file1': owner => root, group => root, mode => '0644', } concat { '/tmp/concat/result_file2': owner => root, group => root, mode => '0644', } concat { '/tmp/concat/result_file3': owner => root, group => root, mode => '0644', } concat::fragment { '1': target => '/tmp/concat/result_file1', source => [ '/tmp/concat/file1', '/tmp/concat/file2' ], order => '01', } concat::fragment { '2': target => '/tmp/concat/result_file2', source => [ '/tmp/concat/file2', '/tmp/concat/file1' ], order => '01', } concat::fragment { '3': target => '/tmp/concat/result_file3', source => [ '/tmp/concat/file1', '/tmp/concat/file2' ], order => '01', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/result_file1') do it { should be_file } it { should contain 'file1 contents' } it { should_not contain 'file2 contents' } end describe file('/tmp/concat/result_file2') do it { should be_file } it { should contain 'file2 contents' } it { should_not contain 'file1 contents' } end describe file('/tmp/concat/result_file3') do it { should be_file } it { should contain 'file1 contents' } it { should_not contain 'file2 contents' } end end context 'should fail if no match on source.' do before(:all) do shell('rm -rf /tmp/concat /var/lib/puppet/concat') shell('mkdir -p /tmp/concat') shell('/bin/rm -rf /tmp/concat/fail_no_source /tmp/concat/nofilehere /tmp/concat/nothereeither') end pp = <<-EOS concat { '/tmp/concat/fail_no_source': owner => root, group => root, mode => '0644', } concat::fragment { '1': target => '/tmp/concat/fail_no_source', source => [ '/tmp/concat/nofilehere', '/tmp/concat/nothereeither' ], order => '01', } EOS it 'applies the manifest with resource failures' do apply_manifest(pp, :expect_failures => true) end describe file('/tmp/concat/fail_no_source') do #FIXME: Serverspec::Type::File doesn't support exists? for some reason. so... hack. it { should_not be_file } it { should_not be_directory } end end end diff --git a/spec/acceptance/fragments_are_always_replaced_spec.rb b/spec/acceptance/fragments_are_always_replaced_spec.rb index a207b05..2c999f7 100644 --- a/spec/acceptance/fragments_are_always_replaced_spec.rb +++ b/spec/acceptance/fragments_are_always_replaced_spec.rb @@ -1,119 +1,119 @@ require 'spec_helper_acceptance' describe 'concat::fragment replace' do context 'should create fragment files' do before(:all) do shell('rm -rf /tmp/concat /var/lib/puppet/concat') shell('mkdir /tmp/concat') end pp1 = <<-EOS concat { '/tmp/concat/foo': } concat::fragment { '1': target => '/tmp/concat/foo', content => 'caller has replace unset run 1', } EOS pp2 = <<-EOS concat { '/tmp/concat/foo': } concat::fragment { '1': target => '/tmp/concat/foo', content => 'caller has replace unset run 2', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp1, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp1, :catch_changes => true).stderr).to eq("") - expect(apply_manifest(pp2, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp2, :catch_changes => true).stderr).to eq("") + apply_manifest(pp1, :catch_failures => true) + apply_manifest(pp1, :catch_changes => true) + apply_manifest(pp2, :catch_failures => true) + apply_manifest(pp2, :catch_changes => true) end describe file('/tmp/concat/foo') do it { should be_file } it { should_not contain 'caller has replace unset run 1' } it { should contain 'caller has replace unset run 2' } end end # should create fragment files context 'should replace its own fragment files when caller has File { replace=>true } set' do before(:all) do shell('rm -rf /tmp/concat /var/lib/puppet/concat') shell('mkdir /tmp/concat') end pp1 = <<-EOS File { replace=>true } concat { '/tmp/concat/foo': } concat::fragment { '1': target => '/tmp/concat/foo', content => 'caller has replace true set run 1', } EOS pp2 = <<-EOS File { replace=>true } concat { '/tmp/concat/foo': } concat::fragment { '1': target => '/tmp/concat/foo', content => 'caller has replace true set run 2', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp1, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp1, :catch_changes => true).stderr).to eq("") - expect(apply_manifest(pp2, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp2, :catch_changes => true).stderr).to eq("") + apply_manifest(pp1, :catch_failures => true) + apply_manifest(pp1, :catch_changes => true) + apply_manifest(pp2, :catch_failures => true) + apply_manifest(pp2, :catch_changes => true) end describe file('/tmp/concat/foo') do it { should be_file } it { should_not contain 'caller has replace true set run 1' } it { should contain 'caller has replace true set run 2' } end end # should replace its own fragment files when caller has File(replace=>true) set context 'should replace its own fragment files even when caller has File { replace=>false } set' do before(:all) do shell('rm -rf /tmp/concat /var/lib/puppet/concat') shell('mkdir /tmp/concat') end pp1 = <<-EOS File { replace=>false } concat { '/tmp/concat/foo': } concat::fragment { '1': target => '/tmp/concat/foo', content => 'caller has replace false set run 1', } EOS pp2 = <<-EOS File { replace=>false } concat { '/tmp/concat/foo': } concat::fragment { '1': target => '/tmp/concat/foo', content => 'caller has replace false set run 2', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp1, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp1, :catch_changes => true).stderr).to eq("") - expect(apply_manifest(pp2, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp2, :catch_changes => true).stderr).to eq("") + apply_manifest(pp1, :catch_failures => true) + apply_manifest(pp1, :catch_changes => true) + apply_manifest(pp2, :catch_failures => true) + apply_manifest(pp2, :catch_changes => true) end describe file('/tmp/concat/foo') do it { should be_file } it { should_not contain 'caller has replace false set run 1' } it { should contain 'caller has replace false set run 2' } end end # should replace its own fragment files even when caller has File(replace=>false) set end diff --git a/spec/acceptance/newline_spec.rb b/spec/acceptance/newline_spec.rb index 1e989df..d0801ee 100644 --- a/spec/acceptance/newline_spec.rb +++ b/spec/acceptance/newline_spec.rb @@ -1,57 +1,57 @@ require 'spec_helper_acceptance' describe 'concat ensure_newline parameter' do context '=> false' do pp = <<-EOS concat { '/tmp/concat/file': ensure_newline => false, } concat::fragment { '1': target => '/tmp/concat/file', content => '1', } concat::fragment { '2': target => '/tmp/concat/file', content => '2', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should contain '12' } end end context '=> true' do pp = <<-EOS concat { '/tmp/concat/file': ensure_newline => true, } concat::fragment { '1': target => '/tmp/concat/file', content => '1', } concat::fragment { '2': target => '/tmp/concat/file', content => '2', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) #XXX ensure_newline => true causes changes on every run because the files #are modified in place. end describe file('/tmp/concat/file') do it { should be_file } it { should contain "1\n2\n" } end end end diff --git a/spec/acceptance/order_spec.rb b/spec/acceptance/order_spec.rb index 8bcb713..5d90549 100644 --- a/spec/acceptance/order_spec.rb +++ b/spec/acceptance/order_spec.rb @@ -1,137 +1,137 @@ require 'spec_helper_acceptance' describe 'concat order' do before(:all) do shell('rm -rf /tmp/concat /var/lib/puppet/concat') shell('mkdir -p /tmp/concat') end context '=> alpha' do pp = <<-EOS concat { '/tmp/concat/foo': order => 'alpha' } concat::fragment { '1': target => '/tmp/concat/foo', content => 'string1', } concat::fragment { '2': target => '/tmp/concat/foo', content => 'string2', } concat::fragment { '10': target => '/tmp/concat/foo', content => 'string10', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/foo') do it { should be_file } it { should contain "string10\nstring1\nsring2" } end end context '=> numeric' do pp = <<-EOS concat { '/tmp/concat/foo': order => 'numeric' } concat::fragment { '1': target => '/tmp/concat/foo', content => 'string1', } concat::fragment { '2': target => '/tmp/concat/foo', content => 'string2', } concat::fragment { '10': target => '/tmp/concat/foo', content => 'string10', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/foo') do it { should be_file } it { should contain "string1\nstring2\nsring10" } end end end # concat order describe 'concat::fragment order' do before(:all) do shell('rm -rf /tmp/concat /var/lib/puppet/concat') shell('mkdir -p /tmp/concat') end context '=> reverse order' do pp = <<-EOS concat { '/tmp/concat/foo': } concat::fragment { '1': target => '/tmp/concat/foo', content => 'string1', order => '15', } concat::fragment { '2': target => '/tmp/concat/foo', content => 'string2', # default order 10 } concat::fragment { '3': target => '/tmp/concat/foo', content => 'string3', order => '1', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/foo') do it { should be_file } it { should contain "string3\nstring2\nsring1" } end end context '=> normal order' do pp = <<-EOS concat { '/tmp/concat/foo': } concat::fragment { '1': target => '/tmp/concat/foo', content => 'string1', order => '01', } concat::fragment { '2': target => '/tmp/concat/foo', content => 'string2', order => '02' } concat::fragment { '3': target => '/tmp/concat/foo', content => 'string3', order => '03', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/foo') do it { should be_file } it { should contain "string1\nstring2\nsring3" } end end end # concat::fragment order diff --git a/spec/acceptance/quoted_paths_spec.rb b/spec/acceptance/quoted_paths_spec.rb index d1a2b5f..0b6695d 100644 --- a/spec/acceptance/quoted_paths_spec.rb +++ b/spec/acceptance/quoted_paths_spec.rb @@ -1,33 +1,33 @@ require 'spec_helper_acceptance' describe 'quoted paths' do before(:all) do shell('rm -rf "/tmp/concat test" /var/lib/puppet/concat') shell('mkdir -p "/tmp/concat test"') end context 'path with blanks' do pp = <<-EOS concat { '/tmp/concat test/foo': } concat::fragment { '1': target => '/tmp/concat test/foo', content => 'string1', } concat::fragment { '2': target => '/tmp/concat test/foo', content => 'string2', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat test/foo') do it { should be_file } it { should contain "string1\nsring2" } end end end diff --git a/spec/acceptance/replace_spec.rb b/spec/acceptance/replace_spec.rb index 7b31e09..39dd548 100644 --- a/spec/acceptance/replace_spec.rb +++ b/spec/acceptance/replace_spec.rb @@ -1,241 +1,241 @@ require 'spec_helper_acceptance' describe 'replacement of' do context 'file' do context 'should not succeed' do before(:all) do shell('mkdir -p /tmp/concat') shell('echo "file exists" > /tmp/concat/file') end after(:all) do shell('rm -rf /tmp/concat /var/lib/puppet/concat') end pp = <<-EOS concat { '/tmp/concat/file': replace => false, } concat::fragment { '1': target => '/tmp/concat/file', content => '1', } concat::fragment { '2': target => '/tmp/concat/file', content => '2', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should contain 'file exists' } it { should_not contain '1' } it { should_not contain '2' } end end context 'should succeed' do before(:all) do shell('mkdir -p /tmp/concat') shell('echo "file exists" > /tmp/concat/file') end after(:all) do shell('rm -rf /tmp/concat /var/lib/puppet/concat') end pp = <<-EOS concat { '/tmp/concat/file': replace => true, } concat::fragment { '1': target => '/tmp/concat/file', content => '1', } concat::fragment { '2': target => '/tmp/concat/file', content => '2', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should_not contain 'file exists' } it { should contain '1' } it { should contain '2' } end end end # file context 'symlink' do context 'should not succeed' do # XXX the core puppet file type will replace a symlink with a plain file # when using ensure => present and source => ... but it will not when using # ensure => present and content => ...; this is somewhat confusing behavior before(:all) do shell('mkdir -p /tmp/concat') shell('ln -s /tmp/concat/dangling /tmp/concat/file') end after(:all) do shell('rm -rf /tmp/concat /var/lib/puppet/concat') end pp = <<-EOS concat { '/tmp/concat/file': replace => false, } concat::fragment { '1': target => '/tmp/concat/file', content => '1', } concat::fragment { '2': target => '/tmp/concat/file', content => '2', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_linked_to '/tmp/concat/dangling' } end describe file('/tmp/concat/dangling') do # XXX serverspec does not have a matcher for 'exists' it { should_not be_file } it { should_not be_directory } end end context 'should succeed' do # XXX the core puppet file type will replace a symlink with a plain file # when using ensure => present and source => ... but it will not when using # ensure => present and content => ...; this is somewhat confusing behavior before(:all) do shell('mkdir -p /tmp/concat') shell('ln -s /tmp/concat/dangling /tmp/concat/file') end after(:all) do shell('rm -rf /tmp/concat /var/lib/puppet/concat') end pp = <<-EOS concat { '/tmp/concat/file': replace => true, } concat::fragment { '1': target => '/tmp/concat/file', content => '1', } concat::fragment { '2': target => '/tmp/concat/file', content => '2', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should contain '1' } it { should contain '2' } end end end # symlink context 'directory' do context 'should not succeed' do before(:all) do shell('mkdir -p /tmp/concat/file') end after(:all) do shell('rm -rf /tmp/concat /var/lib/puppet/concat') end pp = <<-EOS concat { '/tmp/concat/file': } concat::fragment { '1': target => '/tmp/concat/file', content => '1', } concat::fragment { '2': target => '/tmp/concat/file', content => '2', } EOS it 'applies the manifest twice with stderr for changing to file' do expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/change from directory to file failed/) expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/change from directory to file failed/) end describe file('/tmp/concat/file') do it { should be_directory } end end # XXX concat's force param currently enables the creation of empty files # when there are no fragments, and the replace param will only replace # files and symlinks, not directories. The semantics either need to be # changed, extended, or a new param introduced to control directory # replacement. context 'should succeed', :pending => 'not yet implemented' do before(:all) do shell('mkdir -p /tmp/concat/file') end after(:all) do shell('rm -rf /tmp/concat /var/lib/puppet/concat') end pp = <<-EOS concat { '/tmp/concat/file': force => true, } concat::fragment { '1': target => '/tmp/concat/file', content => '1', } concat::fragment { '2': target => '/tmp/concat/file', content => '2', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should contain '1' } end end end # directory end diff --git a/spec/acceptance/symbolic_name_spec.rb b/spec/acceptance/symbolic_name_spec.rb index 7267f5e..574e1d1 100644 --- a/spec/acceptance/symbolic_name_spec.rb +++ b/spec/acceptance/symbolic_name_spec.rb @@ -1,32 +1,32 @@ require 'spec_helper_acceptance' describe 'symbolic name' do pp = <<-EOS concat { 'not_abs_path': path => '/tmp/concat/file', } concat::fragment { '1': target => 'not_abs_path', content => '1', order => '01', } concat::fragment { '2': target => 'not_abs_path', content => '2', order => '02', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should contain '1' } it { should contain '2' } end end diff --git a/spec/acceptance/warn_spec.rb b/spec/acceptance/warn_spec.rb index cb0b743..536eb2a 100644 --- a/spec/acceptance/warn_spec.rb +++ b/spec/acceptance/warn_spec.rb @@ -1,97 +1,97 @@ require 'spec_helper_acceptance' describe 'concat warn =>' do context 'true should enable default warning message' do pp = <<-EOS concat { '/tmp/concat/file': warn => true, } concat::fragment { '1': target => '/tmp/concat/file', content => '1', order => '01', } concat::fragment { '2': target => '/tmp/concat/file', content => '2', order => '02', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should contain '# This file is managed by Puppet. DO NOT EDIT.' } it { should contain '1' } it { should contain '2' } end end context 'false should not enable default warning message' do pp = <<-EOS concat { '/tmp/concat/file': warn => false, } concat::fragment { '1': target => '/tmp/concat/file', content => '1', order => '01', } concat::fragment { '2': target => '/tmp/concat/file', content => '2', order => '02', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should_not contain '# This file is managed by Puppet. DO NOT EDIT.' } it { should contain '1' } it { should contain '2' } end end context '# foo should overide default warning message' do pp = <<-EOS concat { '/tmp/concat/file': warn => '# foo', } concat::fragment { '1': target => '/tmp/concat/file', content => '1', order => '01', } concat::fragment { '2': target => '/tmp/concat/file', content => '2', order => '02', } EOS it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => true) end describe file('/tmp/concat/file') do it { should be_file } it { should contain '# foo' } it { should contain '1' } it { should contain '2' } end end end