Selaa lähdekoodia

Merge pull request #146 from cyberious/SpecinfraUpgrade

Fixes issues due to serverspec upgrade
Morgan Haskel 9 vuotta sitten
vanhempi
commit
88676100ed

+ 6 - 1
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

+ 42 - 41
spec/acceptance/ini_setting_spec.rb

@@ -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

+ 37 - 34
spec/acceptance/ini_subsetting_spec.rb

@@ -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

+ 7 - 10
spec/spec_helper_acceptance.rb

@@ -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