]> gitweb.fluxo.info Git - puppet-stdlib.git/commitdiff
(maint) Clear all facts before each example
authorJeff McCune <jeff@puppetlabs.com>
Wed, 24 Oct 2012 23:59:43 +0000 (16:59 -0700)
committerMatthaus Owens <matthaus@puppetlabs.com>
Thu, 25 Oct 2012 00:23:42 +0000 (17:23 -0700)
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.

spec/spec_helper.rb

index 8ae9ad32901206efcb36d373c76a0bc15bd59472..931d35c846949690e66963f65765f069c9eb55ef 100644 (file)
@@ -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