diff --git a/spec/acceptance/concat_spec.rb b/spec/acceptance/concat_spec.rb index 3668217..72981e6 100644 --- a/spec/acceptance/concat_spec.rb +++ b/spec/acceptance/concat_spec.rb @@ -1,165 +1,165 @@ require 'spec_helper_acceptance' case fact('osfamily') when 'AIX' username = 'root' groupname = 'system' when 'Darwin' username = 'root' groupname = 'wheel' when 'windows' username = 'Administrator' groupname = 'Administrators' else username = 'root' groupname = 'root' end -describe 'basic concat test', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do +describe 'basic concat test' do basedir = default.tmpdir('concat') shared_examples 'successfully_applied' do |pp| it 'applies the manifest twice with no stderr' do 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 username } it { should be_grouped_into groupname } it { should be_mode 755 } end describe file("#{default['puppetvardir']}/concat/bin") do it { should be_directory } it { should be_owned_by username } it { should be_grouped_into groupname } it { should be_mode 755 } end describe file("#{default['puppetvardir']}/concat/bin/concatfragments.sh") do it { should be_file } it { should be_owned_by username } #it { should be_grouped_into groupname } it { should be_mode 755 } end describe file("#{default['puppetvardir']}/concat/_tmp_concat_file") do it { should be_directory } it { should be_owned_by username } it { should be_grouped_into groupname } 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 username } it { should be_grouped_into groupname } 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 username } it { should be_grouped_into groupname } 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 username } it { should be_grouped_into groupname } it { should be_mode 640 } end end context 'owner/group root' do pp = <<-EOS concat { '#{basedir}/file': owner => '#{username}', group => '#{groupname}', mode => '0644', } concat::fragment { '1': target => '#{basedir}/file', content => '1', order => '01', } concat::fragment { '2': target => '#{basedir}/file', content => '2', order => '02', } EOS it_behaves_like 'successfully_applied', pp describe file('#{basedir}/file') do it { should be_file } it { should be_owned_by username } it { should be_grouped_into groupname } 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 username } it { should be_grouped_into groupname } 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 username } it { should be_grouped_into groupname } it { should be_mode 640 } end end context 'ensure' do context 'works when set to present with path set' do pp=" concat { 'file': ensure => present, path => '#{basedir}/file', mode => '0644', } concat::fragment { '1': target => 'file', content => '1', order => '01', } " it_behaves_like 'successfully_applied', pp describe file('#{basedir}/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 => '#{basedir}/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 apply_manifest(pp, :catch_failures => true) apply_manifest(pp, :catch_changes => true) end describe file('#{basedir}/file') do it { should_not be_file } end end end end diff --git a/spec/acceptance/fragment_source_spec.rb b/spec/acceptance/fragment_source_spec.rb index 9c5427a..3c4d9ae 100644 --- a/spec/acceptance/fragment_source_spec.rb +++ b/spec/acceptance/fragment_source_spec.rb @@ -1,149 +1,149 @@ require 'spec_helper_acceptance' case fact('osfamily') when 'AIX' username = 'root' groupname = 'system' when 'Darwin' username = 'root' groupname = 'wheel' when 'windows' username = 'Administrator' groupname = 'Administrators' else username = 'root' groupname = 'root' end -describe 'concat::fragment source', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do +describe 'concat::fragment source' do basedir = default.tmpdir('concat') context 'should read file fragments from local system' do pp = <<-EOS file { '#{basedir}/file1': content => "file1 contents\n" } file { '#{basedir}/file2': content => "file2 contents\n" } concat { '#{basedir}/foo': } concat::fragment { '1': target => '#{basedir}/foo', source => '#{basedir}/file1', require => File['#{basedir}/file1'], } concat::fragment { '2': target => '#{basedir}/foo', content => 'string1 contents', } concat::fragment { '3': target => '#{basedir}/foo', source => '#{basedir}/file2', require => File['#{basedir}/file2'], } EOS it 'applies the manifest twice with no stderr' do apply_manifest(pp, :catch_failures => true) apply_manifest(pp, :catch_changes => true) end describe file('#{basedir}/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 pp = <<-EOS file { '#{basedir}/file1': content => "file1 contents\n" } file { '#{basedir}/file2': content => "file2 contents\n" } concat { '#{basedir}/result_file1': owner => '#{username}', group => '#{groupname}', mode => '0644', } concat { '#{basedir}/result_file2': owner => '#{username}', group => '#{groupname}', mode => '0644', } concat { '#{basedir}/result_file3': owner => '#{username}', group => '#{groupname}', mode => '0644', } concat::fragment { '1': target => '#{basedir}/result_file1', source => [ '#{basedir}/file1', '#{basedir}/file2' ], require => [ File['#{basedir}/file1'], File['#{basedir}/file2'] ], order => '01', } concat::fragment { '2': target => '#{basedir}/result_file2', source => [ '#{basedir}/file2', '#{basedir}/file1' ], require => [ File['#{basedir}/file1'], File['#{basedir}/file2'] ], order => '01', } concat::fragment { '3': target => '#{basedir}/result_file3', source => [ '#{basedir}/file1', '#{basedir}/file2' ], require => [ File['#{basedir}/file1'], File['#{basedir}/file2'] ], order => '01', } EOS it 'applies the manifest twice with no stderr' do apply_manifest(pp, :catch_failures => true) apply_manifest(pp, :catch_changes => true) end describe file('#{basedir}/result_file1') do it { should be_file } it { should contain 'file1 contents' } it { should_not contain 'file2 contents' } end describe file('#{basedir}/result_file2') do it { should be_file } it { should contain 'file2 contents' } it { should_not contain 'file1 contents' } end describe file('#{basedir}/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 pp = <<-EOS concat { '#{basedir}/fail_no_source': owner => '#{username}', group => '#{groupname}', mode => '0644', } concat::fragment { '1': target => '#{basedir}/fail_no_source', source => [ '#{basedir}/nofilehere', '#{basedir}/nothereeither' ], order => '01', } EOS it 'applies the manifest with resource failures' do apply_manifest(pp, :expect_failures => true) end describe file('#{basedir}/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