1 dir = File.expand_path(File.dirname(__FILE__))
2 $LOAD_PATH.unshift File.join(dir, 'lib')
6 # Don't want puppet getting the command line arguments for rake or autotest
12 gem 'rspec', '>=2.0.0'
13 require 'rspec/expectations'
15 # So everyone else doesn't have to include this base constant.
17 FIXTURE_DIR = File.join(dir = File.expand_path(File.dirname(__FILE__)), "fixtures") unless defined?(FIXTURE_DIR)
23 require 'puppet_spec/verbose'
24 require 'puppet_spec/files'
25 require 'puppet_spec/fixtures'
26 require 'puppet_spec/matchers'
27 require 'monkey_patches/alias_should_to_must'
28 require 'monkey_patches/publicize_methods'
30 # JJM Hack to make the stdlib tests run in Puppet 2.6 (See puppet commit cf183534)
31 if not Puppet.constants.include? "Test" then
43 Puppet::Util::Log.newdesttype :log_collector do
44 match "Puppet::Test::LogCollector"
46 def initialize(messages)
56 Pathname.glob("#{dir}/shared_behaviours/**/*.rb") do |behaviour|
57 require behaviour.relative_path_from(Pathname.new(dir))
60 RSpec.configure do |config|
61 include PuppetSpec::Fixtures
63 config.mock_with :mocha
65 config.before :each do
68 # these globals are set by Application
69 $puppet_application_mode = nil
70 $puppet_application_name = nil
72 # REVISIT: I think this conceals other bad tests, but I don't have time to
73 # fully diagnose those right now. When you read this, please come tell me
74 # I suck for letting this float. --daniel 2011-04-21
77 # Set the confdir and vardir to gibberish so that tests
78 # have to be correctly mocked.
79 Puppet[:confdir] = "/dev/null"
80 Puppet[:vardir] = "/dev/null"
82 # Avoid opening ports to the outside world
83 Puppet.settings[:bindaddress] = "127.0.0.1"
86 Puppet::Util::Log.newdestination(Puppet::Test::LogCollector.new(@logs))
88 @log_level = Puppet::Util::Log.level
93 Puppet::Node::Environment.clear
94 Puppet::Util::Storage.clear
95 Puppet::Util::ExecutionStub.reset if Puppet::Util.constants.include? "ExecutionStub"
97 PuppetSpec::Files.cleanup
100 Puppet::Util::Log.close_all
101 Puppet::Util::Log.level = @log_level