summaryrefslogtreecommitdiff
path: root/spec/spec_helper.rb
diff options
context:
space:
mode:
authorJeff McCune <jeff@puppetlabs.com>2011-08-08 16:58:14 -0700
committerJeff McCune <jeff@puppetlabs.com>2011-08-08 16:58:40 -0700
commit33887f9be50c4fd94bbd08d7c00d9b3d97e29d21 (patch)
treeb7c5b8cd3595b1db0a835f31e551f5baf6b2c0ed /spec/spec_helper.rb
parente8fb6917d102d8a45d5682b79f33b1ac0d52d73b (diff)
parentaa27fc76c7d5fa090ea1d47027856c3e70c6ae8f (diff)
Merge branch 'issue/master/8797_puppetlabs-functions_merge'
Closes pull request #12 Reviewed-by: Jeff McCune Verified all spec tests pass using rspec **/*_spec.rb * issue/master/8797_puppetlabs-functions_merge: (164 commits) * Moved kwalify to puppetlabs-kwalify project * Re-arranged tests in line with puppetlabs-stdlib Prep for stdlib merge * Renamed load_yaml & load_json to parseyaml & parsejson * Renamed is_valid_* functions and remove the 'valid_' Fix some ruby 1.9.2 issues. (#3) Provide documentation for remaining functions. (#3) Apply missing documentation to more functions. Remove rand. Some improvements to values_at tests. (#1) provide some more detailed tests for a number of functions. Removed date stub since this functinality is available in strftime anyway. (#2) fix is_string finally so it also makes sure numbers return false. (#2) unstub is_valid_domain_name Added doc strings for first five functions Removed join_with_prefix. (#2) unstub is_valid_mac_address. Allow sort for strings. Count functionality overlaps with size - so removing it. Removed crontab functions instead of unstubbing them. Removed load_variables. load_yaml is sufficient to solve this problem on its own. Remove is_valid_netmask instead of unstubbing. Doesn't seem like a sensible function on its own. (#2) unstub is_numeric function. ...
Diffstat (limited to 'spec/spec_helper.rb')
-rw-r--r--spec/spec_helper.rb84
1 files changed, 72 insertions, 12 deletions
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index a4aeeae..fdc04bc 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,18 +1,78 @@
-require 'pathname'
-dir = Pathname.new(__FILE__).parent
-$LOAD_PATH.unshift(dir, dir + 'lib', dir + '../lib')
+dir = File.expand_path(File.dirname(__FILE__))
+$LOAD_PATH.unshift File.join(dir, 'lib')
+
+p dir
+
+# Don't want puppet getting the command line arguments for rake or autotest
+ARGV.clear
-require 'mocha'
require 'puppet'
-gem 'rspec', '=1.2.9'
-require 'spec/autorun'
+require 'mocha'
+gem 'rspec', '>=2.0.0'
+require 'rspec/expectations'
-Spec::Runner.configure do |config|
- config.mock_with :mocha
+# So everyone else doesn't have to include this base constant.
+module PuppetSpec
+ FIXTURE_DIR = File.join(dir = File.expand_path(File.dirname(__FILE__)), "fixtures") unless defined?(FIXTURE_DIR)
end
-# We need this because the RAL uses 'should' as a method. This
-# allows us the same behaviour but with a different method name.
-class Object
- alias :must :should
+require 'pathname'
+require 'tmpdir'
+
+require 'puppet_spec/verbose'
+require 'puppet_spec/files'
+require 'puppet_spec/fixtures'
+require 'puppet_spec/matchers'
+require 'monkey_patches/alias_should_to_must'
+require 'monkey_patches/publicize_methods'
+
+Pathname.glob("#{dir}/shared_behaviours/**/*.rb") do |behaviour|
+ require behaviour.relative_path_from(Pathname.new(dir))
+end
+
+RSpec.configure do |config|
+ include PuppetSpec::Fixtures
+
+ config.mock_with :mocha
+
+ config.before :each do
+ GC.disable
+
+ # these globals are set by Application
+ $puppet_application_mode = nil
+ $puppet_application_name = nil
+
+ # REVISIT: I think this conceals other bad tests, but I don't have time to
+ # fully diagnose those right now. When you read this, please come tell me
+ # I suck for letting this float. --daniel 2011-04-21
+ Signal.stubs(:trap)
+
+ # Set the confdir and vardir to gibberish so that tests
+ # have to be correctly mocked.
+ Puppet[:confdir] = "/dev/null"
+ Puppet[:vardir] = "/dev/null"
+
+ # Avoid opening ports to the outside world
+ Puppet.settings[:bindaddress] = "127.0.0.1"
+
+ @logs = []
+ Puppet::Util::Log.newdestination(Puppet::Test::LogCollector.new(@logs))
+
+ @log_level = Puppet::Util::Log.level
+ end
+
+ config.after :each do
+ Puppet.settings.clear
+ Puppet::Node::Environment.clear
+ Puppet::Util::Storage.clear
+ Puppet::Util::ExecutionStub.reset
+
+ PuppetSpec::Files.cleanup
+
+ @logs.clear
+ Puppet::Util::Log.close_all
+ Puppet::Util::Log.level = @log_level
+
+ GC.enable
+ end
end