Update is_a acceptance tests to only run on puppet4

This commit is contained in:
Morgan Haskel 2015-09-21 14:12:25 -07:00
parent 97bd656efb
commit b20239e796
2 changed files with 25 additions and 19 deletions

View file

@ -1,28 +1,30 @@
#! /usr/bin/env ruby -S rspec #! /usr/bin/env ruby -S rspec
require 'spec_helper_acceptance' require 'spec_helper_acceptance'
describe 'is_a function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do if get_puppet_version =~ /^4/
it 'should match a string' do describe 'is_a function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do
pp = <<-EOS it 'should match a string' do
if 'hello world'.is_a(String) { pp = <<-EOS
notify { 'output correct': } if 'hello world'.is_a(String) {
} notify { 'output correct': }
EOS }
EOS
apply_manifest(pp, :catch_failures => true) do |r| apply_manifest(pp, :catch_failures => true) do |r|
expect(r.stdout).to match(/Notice: output correct/) expect(r.stdout).to match(/Notice: output correct/)
end
end end
end
it 'should not match a integer as string' do it 'should not match a integer as string' do
pp = <<-EOS pp = <<-EOS
if 5.is_a(String) { if 5.is_a(String) {
notify { 'output wrong': } notify { 'output wrong': }
} }
EOS EOS
apply_manifest(pp, :catch_failures => true) do |r| apply_manifest(pp, :catch_failures => true) do |r|
expect(r.stdout).not_to match(/Notice: output wrong/) expect(r.stdout).not_to match(/Notice: output wrong/)
end
end end
end end
end end

View file

@ -33,9 +33,13 @@ def is_future_parser_enabled?
return false return false
end end
def get_puppet_version
(on default, puppet('--version')).output.chomp
end
RSpec.shared_context "with faked facts" do RSpec.shared_context "with faked facts" do
let(:facts_d) do let(:facts_d) do
puppet_version = (on default, puppet('--version')).output.chomp puppet_version = get_puppet_version
if fact('osfamily') =~ /windows/i if fact('osfamily') =~ /windows/i
if fact('kernelmajversion').to_f < 6.0 if fact('kernelmajversion').to_f < 6.0
'C:/Documents and Settings/All Users/Application Data/PuppetLabs/facter/facts.d' 'C:/Documents and Settings/All Users/Application Data/PuppetLabs/facter/facts.d'