Module: RSpec::Puppet::FunctionExampleGroup
- Includes:
- FunctionMatchers, ManifestMatchers, Support
- Defined in:
- lib/rspec-puppet/example/function_example_group.rb
Instance Method Summary collapse
-
#build_compiler(node_name, fact_values) ⇒ Object
get a compiler with an attached compiled catalog.
- #subject ⇒ Object
Instance Method Details
#build_compiler(node_name, fact_values) ⇒ Object
get a compiler with an attached compiled catalog
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/rspec-puppet/example/function_example_group.rb', line 32 def build_compiler(node_name, fact_values) = { :parameters => fact_values, } stub_facts! fact_values node = build_node(node_name, ) compiler = Puppet::Parser::Compiler.new(node) compiler.compile compiler end |
#subject ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/rspec-puppet/example/function_example_group.rb', line 7 def subject function_name = self.class.top_level_description.downcase vardir = setup_puppet node_name = nodename(:function) facts_val = facts_hash(node_name) # if we specify a pre_condition, we should ensure that we compile that code # into a catalog that is accessible from the scope where the function is called Puppet[:code] = pre_cond compiler = build_compiler(node_name, facts_val) function_scope = scope(compiler, node_name) # Return the method instance for the function. This can be used with # method.call return nil unless Puppet::Parser::Functions.function(function_name) FileUtils.rm_rf(vardir) if File.directory?(vardir) function_scope.method("function_#{function_name}".intern) end |