summaryrefslogtreecommitdiff
path: root/spec/spec_helper.rb
diff options
context:
space:
mode:
authorJeff McCune <jeff@puppetlabs.com>2012-10-24 16:59:43 -0700
committerMatthaus Owens <matthaus@puppetlabs.com>2012-10-24 17:23:42 -0700
commitba70a3885af452aea72d408f447c5bc7fd8bf0c0 (patch)
treeb65f65784797081dbf8dd51a70546baaaf64dd9f /spec/spec_helper.rb
parent4442f1edb5c3566e832b3b10ac6181793d7502e5 (diff)
downloadpuppet-stdlib-ba70a3885af452aea72d408f447c5bc7fd8bf0c0.tar.gz
puppet-stdlib-ba70a3885af452aea72d408f447c5bc7fd8bf0c0.tar.bz2
(maint) Clear all facts before each example
Without this patch example groups must explicitly call `Facter.clear` to clear any cached values between examples. This is a problem because this behavior is not the concern of the example groups, the behavior is the concern of the spec_helper or whatever facility we have in place to initialize the system for testing. This patch fixes the problem by duplicating the logic in the Facter spec_helper to ensure facts are cleared out before each example. This patch requires the example groups to explicitly load the facts they require if the fact name does not match the filename.
Diffstat (limited to 'spec/spec_helper.rb')
-rw-r--r--spec/spec_helper.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 8ae9ad3..931d35c 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -12,3 +12,17 @@ require 'rspec/expectations'
require 'puppetlabs_spec_helper/module_spec_helper'
+RSpec.configure do |config|
+ # FIXME REVISIT - We may want to delegate to Facter like we do in
+ # Puppet::PuppetSpecInitializer.initialize_via_testhelper(config) because
+ # this behavior is a duplication of the spec_helper in Facter.
+ config.before :each do
+ # Ensure that we don't accidentally cache facts and environment between
+ # test cases. This requires each example group to explicitly load the
+ # facts being exercised with something like
+ # Facter.collection.loader.load(:ipaddress)
+ Facter::Util::Loader.any_instance.stubs(:load_all)
+ Facter.clear
+ Facter.clear_messages
+ end
+end