diff options
author | Jeff McCune <jeff@puppetlabs.com> | 2012-03-29 16:52:15 -0700 |
---|---|---|
committer | Jeff McCune <jeff@puppetlabs.com> | 2012-03-29 16:52:15 -0700 |
commit | 665610baaf052a4b7b1c73682b9183ea743f2593 (patch) | |
tree | 905d915d405a914b4cc601b690314bec261c8ac2 /spec | |
parent | cbdffb711fb109628ecdada9083f064b2e8d3a64 (diff) | |
download | puppet-stdlib-665610baaf052a4b7b1c73682b9183ea743f2593.tar.gz puppet-stdlib-665610baaf052a4b7b1c73682b9183ea743f2593.tar.bz2 |
(#13439) Fix test failures with Puppet 2.6.x
Without this patch the spec_helper sends a message named
initialize_everything_for_tests to Puppet.settings. This is a problem
because Puppet 2.6.x does not have this method, only Puppet 2.7.x and
Puppet master have this method at this time and we're getting false
positive test failures.
This patch fixes the problem by looking before we leap. We test if the
private method exists before calling it. This works with Ruby 1.8.5 and
onwards and Puppet 2.6, 2.7 and master.
This should fix all of the failures I've caused in Jenkins today.
Diffstat (limited to 'spec')
-rw-r--r-- | spec/spec_helper.rb | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index d6837a9..d0b493e 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -71,7 +71,12 @@ RSpec.configure do |config| # I suck for letting this float. --daniel 2011-04-21 Signal.stubs(:trap) - Puppet.settings.send(:initialize_everything_for_tests) + # We're using send because this is a private method to communicate it + # should only be used for tests. We're testing if it's defined to work + # with Puppet 2.6.x which does not have the method. + if Puppet.settings.private_methods.include? "initialize_everything_for_tests" + Puppet.settings.send(:initialize_everything_for_tests) + end @logs = [] @@ -81,7 +86,12 @@ RSpec.configure do |config| end config.after :each do - Puppet.settings.send(:clear_everything_for_tests) + # We're using send because this is a private method to communicate it + # should only be used for tests. We're testing if it's defined to work + # with Puppet 2.6.x which does not have the method at all. + if Puppet.settings.private_methods.include? "clear_everything_for_tests" + Puppet.settings.send(:clear_everything_for_tests) + end Puppet::Node::Environment.clear Puppet::Util::Storage.clear Puppet::Util::ExecutionStub.reset if Puppet::Util.constants.include? "ExecutionStub" |