summaryrefslogtreecommitdiff
path: root/spec/spec_helper.rb
diff options
context:
space:
mode:
authorJeff McCune <jeff@puppetlabs.com>2011-10-10 11:58:48 -0700
committerJeff McCune <jeff@puppetlabs.com>2011-10-10 11:58:48 -0700
commitcc001095b3b22afd8a887e0c5d2c73e596513c1f (patch)
tree5e56ddb10819b8fc74b24e5aef2940af7a1be578 /spec/spec_helper.rb
parent9f98d3feaf7e3fee55bc2b7b2e1d8f75b0972672 (diff)
(Maint) Make rspec tests work with Puppet 2.6.4
The behavior without this patch applied is that the rspec tests do not function with Puppet 2.6.4. This patch back-ports some fixes introduced in Puppet 2.7.x to the spec_helper to make the tests work as expected on Puppet 2.6.4. The specific patches back ported from Puppet are: * 2ae88067 (Puppet::Util::ExecutionStub.reset) * cf183534 (Switched spec tests to use a class rather than Array as the log destination.)
Diffstat (limited to 'spec/spec_helper.rb')
-rw-r--r--spec/spec_helper.rb28
1 files changed, 27 insertions, 1 deletions
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index fc19cef..87aac34 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -27,6 +27,32 @@ require 'puppet_spec/matchers'
require 'monkey_patches/alias_should_to_must'
require 'monkey_patches/publicize_methods'
+# JJM Hack to make the stdlib tests run in Puppet 2.6 (See puppet commit cf183534)
+if not Puppet.constants.include? "Test" then
+ module Puppet::Test
+ class LogCollector
+ def initialize(logs)
+ @logs = logs
+ end
+
+ def <<(value)
+ @logs << value
+ end
+ end
+ end
+ Puppet::Util::Log.newdesttype :log_collector do
+ match "Puppet::Test::LogCollector"
+
+ def initialize(messages)
+ @messages = messages
+ end
+
+ def handle(msg)
+ @messages << msg
+ end
+ end
+end
+
Pathname.glob("#{dir}/shared_behaviours/**/*.rb") do |behaviour|
require behaviour.relative_path_from(Pathname.new(dir))
end
@@ -66,7 +92,7 @@ RSpec.configure do |config|
Puppet.settings.clear
Puppet::Node::Environment.clear
Puppet::Util::Storage.clear
- Puppet::Util::ExecutionStub.reset
+ Puppet::Util::ExecutionStub.reset if Puppet::Util.constants.include? "ExecutionStub"
PuppetSpec::Files.cleanup