def build_catalog_without_cache(nodename, facts_val, hiera_config_val, code)
HieraPuppet.instance_variable_set('@hiera', nil) if defined? HieraPuppet
Puppet[:code] = code
stub_facts! facts_val
node_obj = Puppet::Node.new(nodename)
node_obj.merge(facts_val)
if Puppet::Resource::Catalog.respond_to? :find
Puppet::Resource::Catalog.find(node_obj.name, :use_node => node_obj)
elsif Puppet.version.to_f >= 4.0
env = Puppet::Node::Environment.create(
environment,
[File.join(Puppet[:environmentpath],'fixtures','modules')],
File.join(Puppet[:environmentpath],'fixtures','manifests'))
loader = Puppet::Environments::Static.new(env)
Puppet.override({:environments => loader}, 'fixtures') do
node_obj.environment = env
Puppet::Resource::Catalog.indirection.find(node_obj.name, :use_node => node_obj)
end
else
Puppet::Resource::Catalog.indirection.find(node_obj.name, :use_node => node_obj)
end
end