aboutsummaryrefslogtreecommitdiffstats
path: root/modules/facter/spec/spec_helper.rb
diff options
context:
space:
mode:
Diffstat (limited to 'modules/facter/spec/spec_helper.rb')
-rw-r--r--modules/facter/spec/spec_helper.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/modules/facter/spec/spec_helper.rb b/modules/facter/spec/spec_helper.rb
new file mode 100644
index 00000000..81d9f79b
--- /dev/null
+++ b/modules/facter/spec/spec_helper.rb
@@ -0,0 +1,35 @@
+# taken from facter source code
+# ASL 2.0
+dir = File.expand_path(File.dirname(__FILE__))
+
+SPECDIR = dir
+$LOAD_PATH.unshift("#{dir}/../lib")
+
+require 'mocha'
+require 'rspec'
+require 'facter'
+require 'fileutils'
+
+RSpec.configure do |config|
+ config.mock_with :mocha
+
+ config.before :each do
+ # Ensure that we don't accidentally cache facts and environment
+ # between test cases.
+ Facter::Util::Loader.any_instance.stubs(:load_all)
+ Facter.clear
+ Facter.clear_messages
+
+ # Store any environment variables away to be restored later
+ @old_env = {}
+ ENV.each_key {|k| @old_env[k] = ENV[k]}
+ end
+
+ config.after :each do
+ # Restore environment variables after execution of each test
+ @old_env.each_pair {|k, v| ENV[k] = v}
+ to_remove = ENV.keys.reject {|key| @old_env.include? key }
+ to_remove.each {|key| ENV.delete key }
+ end
+end
+