I am working on rspec tests for a module for Puppet 5 that refers to nodes' $::trusted_facts hash, and, separately, relies on nodes' $::networking fact. In particular it uses the values of $::networking['fqdn'] and $::networking['hostname']. I would like to test scenarios where the attributes of $::networking are unrelated to the node name, or even are absent altogether, but I can't figure out how to do it.
Through a combination of documentation and trial and error, I think I have determined that in order for rspec-puppet to provide the $::trusted_facts hash to the catalog builder, I need to configure its trusted_node_data parameter to true, and to define a node name in my tests via let(:node) { 'node-name' }. After doing so, however, I found that the catalog builder was receiving different values for the hostname and fqdn than those I specify via a let(:facts) call. After much head scratching, hypothesizing, and net searching, I think I finally established that by default, rspec-puppet uses the node name to set values for these properties, overriding anything to the contrary in the facts I provide. But wait! Rspec-puppet also has a configuration parameter, derive_node_facts_from_nodename, that seems custom-made for disabling the troublesome behavior. That's great, except that setting that parameter to false seems to disable the $::trusted_facts hash as well. Is there some combination of rspec configuration settings and test code that can give me the test scenarios I want? That is, $::trusted_facts presented to the catalog builder and containing at least the certname key, with $::networking['fqdn'] and $::networking['hostname'] taking independent values (or being undefined), as I specify separately? John -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/0f40d103-e796-4a1a-aa25-e56622071c8e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.