Merge pull request #146 from cyberious/SpecinfraUpgrade
Fixes issues due to serverspec upgrade
This commit is contained in:
commit
88676100ed
4 changed files with 92 additions and 86 deletions
7
Gemfile
7
Gemfile
|
@ -19,13 +19,18 @@ group :development, :unit_tests do
|
|||
gem 'simplecov', :require => false
|
||||
gem 'puppet_facts', :require => false
|
||||
gem 'json', :require => false
|
||||
gem 'pry', :require => false
|
||||
end
|
||||
|
||||
beaker_version = ENV['BEAKER_VERSION']
|
||||
beaker_rspec_version = ENV['BEAKER_RSPEC_VERSION']
|
||||
group :system_tests do
|
||||
if beaker_version
|
||||
gem 'beaker', *location_for(beaker_version)
|
||||
end
|
||||
if beaker_rspec_version
|
||||
gem 'beaker-rspec', *location_for(beaker_rspec_version)
|
||||
else
|
||||
else
|
||||
gem 'beaker-rspec', :require => false
|
||||
end
|
||||
gem 'serverspec', :require => false
|
||||
|
|
|
@ -4,16 +4,16 @@ tmpdir = default.tmpdir('tmp')
|
|||
|
||||
describe 'ini_setting resource' do
|
||||
after :all do
|
||||
shell("rm #{tmpdir}/*.ini", :acceptable_exit_codes => [0,1,2])
|
||||
shell("rm #{tmpdir}/*.ini", :acceptable_exit_codes => [0, 1, 2])
|
||||
end
|
||||
|
||||
shared_examples 'has_content' do |path,pp,content|
|
||||
shared_examples 'has_content' do |path, pp, content|
|
||||
before :all do
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
end
|
||||
after :all do
|
||||
shell("cat #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("cat #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
end
|
||||
|
||||
it 'applies the manifest twice' do
|
||||
|
@ -23,20 +23,17 @@ describe 'ini_setting resource' do
|
|||
|
||||
describe file(path) do
|
||||
it { should be_file }
|
||||
#XXX Solaris 10 doesn't support multi-line grep
|
||||
it("should contain #{content}", :unless => fact('osfamily') == 'Solaris') {
|
||||
should contain(content)
|
||||
}
|
||||
its(:content) { should match content }
|
||||
end
|
||||
end
|
||||
|
||||
shared_examples 'has_error' do |path,pp,error|
|
||||
shared_examples 'has_error' do |path, pp, error|
|
||||
before :all do
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
end
|
||||
after :all do
|
||||
shell("cat #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("cat #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
end
|
||||
|
||||
it 'applies the manifest and gets a failure message' do
|
||||
|
@ -72,13 +69,13 @@ describe 'ini_setting resource' do
|
|||
apply_manifest(pp, :catch_changes => true)
|
||||
end
|
||||
|
||||
it_behaves_like 'has_content', "#{tmpdir}/ini_setting.ini", pp, "four = five\n[one]\ntwo = three"
|
||||
it_behaves_like 'has_content', "#{tmpdir}/ini_setting.ini", pp, /four = five\n\n\[one\]\ntwo = three/
|
||||
end
|
||||
|
||||
context '=> absent for key/value' do
|
||||
before :all do
|
||||
if fact('osfamily') == 'Darwin'
|
||||
shell("echo \"four = five\n[one]\ntwo = three\" > #{tmpdir}/ini_setting.ini")
|
||||
shell("echo \"four = five[one]\ntwo = three\" > #{tmpdir}/ini_setting.ini")
|
||||
else
|
||||
shell("echo -e \"four = five\n[one]\ntwo = three\" > #{tmpdir}/ini_setting.ini")
|
||||
end
|
||||
|
@ -96,14 +93,16 @@ describe 'ini_setting resource' do
|
|||
|
||||
it 'applies the manifest twice' do
|
||||
apply_manifest(pp, :catch_failures => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
end
|
||||
|
||||
describe file("#{tmpdir}/ini_setting.ini") do
|
||||
it { should be_file }
|
||||
it { should contain('four = five') }
|
||||
it { should contain('[one]') }
|
||||
it { should_not contain('two = three') }
|
||||
its(:content) {
|
||||
should match /four = five/
|
||||
should match /\[one\]/
|
||||
should_not match /two = three/
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -116,8 +115,8 @@ describe 'ini_setting resource' do
|
|||
end
|
||||
end
|
||||
after :all do
|
||||
shell("cat #{tmpdir}/ini_setting.ini", :acceptable_exit_codes => [0,1,2])
|
||||
shell("rm #{tmpdir}/ini_setting.ini", :acceptable_exit_codes => [0,1,2])
|
||||
shell("cat #{tmpdir}/ini_setting.ini", :acceptable_exit_codes => [0, 1, 2])
|
||||
shell("rm #{tmpdir}/ini_setting.ini", :acceptable_exit_codes => [0, 1, 2])
|
||||
end
|
||||
|
||||
pp = <<-EOS
|
||||
|
@ -132,23 +131,25 @@ describe 'ini_setting resource' do
|
|||
|
||||
it 'applies the manifest twice' do
|
||||
apply_manifest(pp, :catch_failures => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
end
|
||||
|
||||
describe file("#{tmpdir}/ini_setting.ini") do
|
||||
it { should be_file }
|
||||
it { should_not contain('four = five') }
|
||||
it { should contain('[one]') }
|
||||
it { should contain('two = three') }
|
||||
its(:content) {
|
||||
should_not match /four = five/
|
||||
should match /\[one\]/
|
||||
should match /two = three/
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'section, setting, value parameters' do
|
||||
{
|
||||
"section => 'test', setting => 'foo', value => 'bar'," => "[test]\nfoo = bar",
|
||||
"section => 'more', setting => 'baz', value => 'quux'," => "[more]\nbaz = quux",
|
||||
"section => '', setting => 'top', value => 'level'," => "top = level",
|
||||
"section => 'test', setting => 'foo', value => 'bar'," => /\[test\]\nfoo = bar/,
|
||||
"section => 'more', setting => 'baz', value => 'quux'," => /\[more\]\nbaz = quux/,
|
||||
"section => '', setting => 'top', value => 'level'," => /top = level/,
|
||||
}.each do |parameter_list, content|
|
||||
context parameter_list do
|
||||
pp = <<-EOS
|
||||
|
@ -164,12 +165,12 @@ describe 'ini_setting resource' do
|
|||
end
|
||||
|
||||
{
|
||||
"section => 'test'," => /setting is a required.+value is a required/,
|
||||
"setting => 'foo', value => 'bar'," => /section is a required/,
|
||||
"section => 'test', setting => 'foo'," => /value is a required/,
|
||||
"section => 'test', value => 'bar'," => /setting is a required/,
|
||||
"value => 'bar'," => /section is a required.+setting is a required/,
|
||||
"setting => 'foo'," => /section is a required.+value is a required/,
|
||||
"section => 'test'," => /setting is a required.+value is a required/,
|
||||
"setting => 'foo', value => 'bar'," => /section is a required/,
|
||||
"section => 'test', setting => 'foo'," => /value is a required/,
|
||||
"section => 'test', value => 'bar'," => /setting is a required/,
|
||||
"value => 'bar'," => /section is a required.+setting is a required/,
|
||||
"setting => 'foo'," => /section is a required.+value is a required/,
|
||||
}.each do |parameter_list, error|
|
||||
context parameter_list, :pending => 'no error checking yet' do
|
||||
pp = <<-EOS
|
||||
|
@ -187,9 +188,9 @@ describe 'ini_setting resource' do
|
|||
|
||||
describe 'path parameter' do
|
||||
[
|
||||
"#{tmpdir}/one.ini",
|
||||
"#{tmpdir}/two.ini",
|
||||
"#{tmpdir}/three.ini",
|
||||
"#{tmpdir}/one.ini",
|
||||
"#{tmpdir}/two.ini",
|
||||
"#{tmpdir}/three.ini",
|
||||
].each do |path|
|
||||
context "path => #{path}" do
|
||||
pp = <<-EOS
|
||||
|
@ -202,7 +203,7 @@ describe 'ini_setting resource' do
|
|||
}
|
||||
EOS
|
||||
|
||||
it_behaves_like 'has_content', path, pp, "[one]\ntwo = three"
|
||||
it_behaves_like 'has_content', path, pp, /\[one\]\ntwo = three/
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -223,9 +224,9 @@ describe 'ini_setting resource' do
|
|||
|
||||
describe 'key_val_separator parameter' do
|
||||
{
|
||||
"" => "two = three",
|
||||
"key_val_separator => '='," => "two=three",
|
||||
"key_val_separator => ' = '," => "two = three",
|
||||
"" => /two = three/,
|
||||
"key_val_separator => '='," => /two=three/,
|
||||
"key_val_separator => ' = '," => /two = three/,
|
||||
}.each do |parameter, content|
|
||||
context "with \"#{parameter}\" makes \"#{content}\"" do
|
||||
pp = <<-EOS
|
||||
|
|
|
@ -4,36 +4,38 @@ tmpdir = default.tmpdir('tmp')
|
|||
|
||||
describe 'ini_subsetting resource' do
|
||||
after :all do
|
||||
shell("rm #{tmpdir}/*.ini", :acceptable_exit_codes => [0,1,2])
|
||||
shell("rm #{tmpdir}/*.ini", :acceptable_exit_codes => [0, 1, 2])
|
||||
end
|
||||
|
||||
shared_examples 'has_content' do |path,pp,content|
|
||||
shared_examples 'has_content' do |path, pp, content|
|
||||
before :all do
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
end
|
||||
after :all do
|
||||
shell("cat #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("cat #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
end
|
||||
|
||||
it 'applies the manifest twice' do
|
||||
apply_manifest(pp, :catch_failures => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
end
|
||||
|
||||
describe file(path) do
|
||||
it { should be_file }
|
||||
it { should contain(content) }
|
||||
its(:content) {
|
||||
should match content
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
shared_examples 'has_error' do |path,pp,error|
|
||||
shared_examples 'has_error' do |path, pp, error|
|
||||
before :all do
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
end
|
||||
after :all do
|
||||
shell("cat #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("cat #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
end
|
||||
|
||||
it 'applies the manifest and gets a failure message' do
|
||||
|
@ -68,14 +70,13 @@ describe 'ini_subsetting resource' do
|
|||
|
||||
it 'applies the manifest twice' do
|
||||
apply_manifest(pp, :catch_failures => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
end
|
||||
|
||||
describe file("#{tmpdir}/ini_subsetting.ini") do
|
||||
it { should be_file }
|
||||
#XXX Solaris 10 doesn't support multi-line grep
|
||||
it("should contain [one]\nkey = alphabet betatrons", :unless => fact('osfamily') == 'Solaris') {
|
||||
should contain("[one]\nkey = alphabet betatrons")
|
||||
its(:content) {
|
||||
should match /\[one\]\nkey = alphabet betatrons/
|
||||
}
|
||||
end
|
||||
end
|
||||
|
@ -101,27 +102,27 @@ describe 'ini_subsetting resource' do
|
|||
|
||||
it 'applies the manifest twice' do
|
||||
apply_manifest(pp, :catch_failures => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
end
|
||||
|
||||
describe file("#{tmpdir}/ini_subsetting.ini") do
|
||||
it { should be_file }
|
||||
it { should contain('[one]') }
|
||||
it { should contain('key = betatrons') }
|
||||
it { should_not contain('alphabet') }
|
||||
its(:content) {
|
||||
should match /\[one\]/
|
||||
should match /key = betatrons/
|
||||
should_not match /alphabet/
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'subsetting_separator' do
|
||||
{
|
||||
"" => "two = twinethree foobar",
|
||||
#"subsetting_separator => ''," => "two = twinethreefoobar", # breaks regex
|
||||
"subsetting_separator => ','," => "two = twinethree,foobar",
|
||||
"subsetting_separator => ' '," => "two = twinethree foobar",
|
||||
"subsetting_separator => ' == '," => "two = twinethree == foobar",
|
||||
"subsetting_separator => '='," => "two = twinethree=foobar",
|
||||
#"subsetting_separator => '---'," => "two = twinethree---foobar", # breaks regex
|
||||
"" => /two = twinethree foobar/,
|
||||
"subsetting_separator => ','," => /two = twinethree,foobar/,
|
||||
"subsetting_separator => ' '," => /two = twinethree foobar/,
|
||||
"subsetting_separator => ' == '," => /two = twinethree == foobar/,
|
||||
"subsetting_separator => '='," => /two = twinethree=foobar/,
|
||||
}.each do |parameter, content|
|
||||
context "with \"#{parameter}\" makes \"#{content}\"" do
|
||||
pp = <<-EOS
|
||||
|
@ -152,10 +153,10 @@ describe 'ini_subsetting resource' do
|
|||
|
||||
describe 'quote_char' do
|
||||
{
|
||||
['-Xmx'] => 'args=""',
|
||||
['-Xmx', '256m'] => 'args=-Xmx256m',
|
||||
['-Xmx', '512m'] => 'args="-Xmx512m"',
|
||||
['-Xms', '256m'] => 'args="-Xmx256m -Xms256m"',
|
||||
['-Xmx'] => /args=""/,
|
||||
['-Xmx', '256m'] => /args=-Xmx256m/,
|
||||
['-Xmx', '512m'] => /args="-Xmx512m"/,
|
||||
['-Xms', '256m'] => /args="-Xmx256m -Xms256m"/,
|
||||
}.each do |parameter, content|
|
||||
context %Q{with '#{parameter.first}' #{parameter.length > 1 ? '=> \'' << parameter[1] << '\'' : 'absent'} makes '#{content}'} do
|
||||
path = File.join(tmpdir, 'ini_subsetting.ini')
|
||||
|
@ -164,8 +165,8 @@ describe 'ini_subsetting resource' do
|
|||
shell(%Q{echo '[java]\nargs=-Xmx256m' > #{path}})
|
||||
end
|
||||
after :all do
|
||||
shell("cat #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0,1,2])
|
||||
shell("cat #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
shell("rm #{path}", :acceptable_exit_codes => [0, 1, 2])
|
||||
end
|
||||
|
||||
pp = <<-EOS
|
||||
|
@ -182,12 +183,14 @@ describe 'ini_subsetting resource' do
|
|||
|
||||
it 'applies the manifest twice' do
|
||||
apply_manifest(pp, :catch_failures => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
end
|
||||
|
||||
describe file("#{tmpdir}/ini_subsetting.ini") do
|
||||
it { should be_file }
|
||||
it { should contain(content) }
|
||||
its(:content) {
|
||||
should match content
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,9 +4,13 @@ require 'beaker-rspec/helpers/serverspec'
|
|||
unless ENV['RS_PROVISION'] == 'no'
|
||||
# This will install the latest available package on el and deb based
|
||||
# systems fail on windows and osx, and install via gem on other *nixes
|
||||
foss_opts = { :default_action => 'gem_install' }
|
||||
foss_opts = {:default_action => 'gem_install'}
|
||||
|
||||
if default.is_pe?; then install_pe; else install_puppet( foss_opts ); end
|
||||
if default.is_pe?; then
|
||||
install_pe;
|
||||
else
|
||||
install_puppet(foss_opts);
|
||||
end
|
||||
|
||||
hosts.each do |host|
|
||||
if host['platform'] =~ /debian/
|
||||
|
@ -27,14 +31,7 @@ RSpec.configure do |c|
|
|||
c.before :suite do
|
||||
# Install module and dependencies
|
||||
hosts.each do |host|
|
||||
if host['platform'] !~ /windows/i
|
||||
copy_root_module_to(host, :source => proj_root, :module_name => 'inifile')
|
||||
end
|
||||
end
|
||||
hosts.each do |host|
|
||||
if host['platform'] =~ /windows/i
|
||||
on host, puppet('plugin download')
|
||||
end
|
||||
copy_root_module_to(host, :source => proj_root, :module_name => 'inifile')
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue