diff options
-rw-r--r-- | lib/facter/util/collection.rb | 6 | ||||
-rw-r--r-- | spec/spec_helper.rb | 1 | ||||
-rwxr-xr-x | spec/unit/interfaces_spec.rb | 7 | ||||
-rw-r--r-- | spec/unit/memory_spec.rb | 4 | ||||
-rwxr-xr-x | spec/unit/operatingsystem_spec.rb | 2 | ||||
-rwxr-xr-x | spec/unit/util/loader_spec.rb | 4 |
6 files changed, 17 insertions, 7 deletions
diff --git a/lib/facter/util/collection.rb b/lib/facter/util/collection.rb index 3f8e0f8..b3d3a45 100644 --- a/lib/facter/util/collection.rb +++ b/lib/facter/util/collection.rb @@ -66,9 +66,13 @@ class Facter::Util::Collection def fact(name) name = canonize(name) + # Try to load the fact if necessary loader.load(name) unless @facts[name] - return @facts[name] + # Try HARDER + loader.load_all unless @facts[name] + + @facts[name] end # Flush all cached values. diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 28e7b72..483d4dc 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -18,6 +18,7 @@ RSpec.configure do |config| # Ensure that we don't accidentally cache between test cases. config.before :each do + Facter::Util::Loader.any_instance.stubs(:load_all) Facter.clear end end diff --git a/spec/unit/interfaces_spec.rb b/spec/unit/interfaces_spec.rb index 8b295d6..cfe4226 100755 --- a/spec/unit/interfaces_spec.rb +++ b/spec/unit/interfaces_spec.rb @@ -3,17 +3,14 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') require 'facter' +require 'facter/util/ip' describe "Per Interface IP facts" do - before do - Facter.loadfacts - end - it "should replace the ':' in an interface list with '_'" do # So we look supported Facter.fact(:kernel).stubs(:value).returns("SunOS") - Facter::Util::IP.expects(:get_interfaces).returns %w{eth0:1 eth1:2} + Facter::Util::IP.stubs(:get_interfaces).returns %w{eth0:1 eth1:2} Facter.fact(:interfaces).value.should == %{eth0_1,eth1_2} end end diff --git a/spec/unit/memory_spec.rb b/spec/unit/memory_spec.rb index 5cae8cb..fe4ec36 100644 --- a/spec/unit/memory_spec.rb +++ b/spec/unit/memory_spec.rb @@ -6,7 +6,9 @@ require 'facter' describe "Memory facts" do before do - Facter.loadfacts + # We need these facts loaded, but they belong to a file with a + # different name, so load the file explicitly. + Facter.collection.loader.load(:memory) end after do diff --git a/spec/unit/operatingsystem_spec.rb b/spec/unit/operatingsystem_spec.rb index 91cd311..9a7971d 100755 --- a/spec/unit/operatingsystem_spec.rb +++ b/spec/unit/operatingsystem_spec.rb @@ -34,6 +34,7 @@ describe "Operating System fact" do it "should identify Oracle VM as OVS" do Facter.fact(:kernel).stubs(:value).returns("Linux") + Facter.stubs(:value).with(:lsbdistid).returns(nil) FileTest.stubs(:exists?).returns false FileTest.expects(:exists?).with("/etc/ovs-release").returns true @@ -44,6 +45,7 @@ describe "Operating System fact" do it "should identify VMWare ESX" do Facter.fact(:kernel).stubs(:value).returns("Linux") + Facter.stubs(:value).with(:lsbdistid).returns(nil) FileTest.stubs(:exists?).returns false FileTest.expects(:exists?).with("/etc/vmware-release").returns true diff --git a/spec/unit/util/loader_spec.rb b/spec/unit/util/loader_spec.rb index 90530e8..1bc909f 100755 --- a/spec/unit/util/loader_spec.rb +++ b/spec/unit/util/loader_spec.rb @@ -19,6 +19,10 @@ end describe Facter::Util::Loader do + before :each do + Facter::Util::Loader.any_instance.unstub(:load_all) + end + def with_env(values) old = {} values.each do |var, value| |