puppetlabs-stdlib/spec/unit/facter/pe_required_facts_spec.rb
Andrew Parker 799e968f5c (Maint) Update stubbing to work with facter 1.7.4
Facter 1.7.4 changed how it decides on what directory to look in for
facts.d based on the user it is running as. This stubs out that bit of
code to make it think it is running as root.
2013-12-18 14:46:54 -08:00

70 lines
2.4 KiB
Ruby

# Puppet Enterprise requires the following facts to be set in order to operate.
# These facts are set using the file ???? and the two facts are
# `fact_stomp_port`, and `fact_stomp_server`.
#
require 'spec_helper'
describe "External facts in /etc/puppetlabs/facter/facts.d/puppet_enterprise_installer.txt" do
context "With Facter 1.6.17 which does not have external facts support" do
before :each do
Facter.stubs(:version).returns("1.6.17")
Facter::Util::Root.stubs(:root?).returns(true)
# Stub out the filesystem for stdlib
Dir.stubs(:entries).with("/etc/puppetlabs/facter/facts.d").
returns(['puppet_enterprise_installer.txt'])
Dir.stubs(:entries).with("/etc/facter/facts.d").returns([])
File.stubs(:readlines).with('/etc/puppetlabs/facter/facts.d/puppet_enterprise_installer.txt').
returns([
"fact_stomp_port=61613\n",
"fact_stomp_server=puppetmaster.acme.com\n",
"fact_is_puppetagent=true\n",
"fact_is_puppetmaster=false\n",
"fact_is_puppetca=false\n",
"fact_is_puppetconsole=false\n",
])
if Facter.collection.respond_to? :load
Facter.collection.load(:facter_dot_d)
else
Facter.collection.loader.load(:facter_dot_d)
end
end
it 'defines fact_stomp_port' do
Facter.fact(:fact_stomp_port).value.should == '61613'
end
it 'defines fact_stomp_server' do
Facter.fact(:fact_stomp_server).value.should == 'puppetmaster.acme.com'
end
it 'defines fact_is_puppetagent' do
Facter.fact(:fact_is_puppetagent).value.should == 'true'
end
it 'defines fact_is_puppetmaster' do
Facter.fact(:fact_is_puppetmaster).value.should == 'false'
end
it 'defines fact_is_puppetca' do
Facter.fact(:fact_is_puppetca).value.should == 'false'
end
it 'defines fact_is_puppetconsole' do
Facter.fact(:fact_is_puppetconsole).value.should == 'false'
end
end
[ '1.7.1', '2.0.1' ].each do |v|
context "With Facter #{v} which has external facts support" do
before :each do
Facter.stubs(:version).returns(v)
end
it 'does not call Facter::Util::DotD.new' do
Facter::Util::DotD.expects(:new).never
if Facter.collection.respond_to? :load
Facter.collection.load(:facter_dot_d)
else
Facter.collection.loader.load(:facter_dot_d)
end
end
end
end
end