module PuppetlabsSpec::PuppetInternals

PuppetInternals provides a set of methods that interface with internal puppet implementations.

Public Class Methods

compiler(parts = {}) click to toggle source
# File lib/puppetlabs_spec_helper/puppetlabs_spec/puppet_internals.rb, line 18
def compiler(parts = {})
  compiler_node = parts[:node] || node
  Puppet::Parser::Compiler.new(compiler_node)
end
function_method(name, parts = {}) click to toggle source

Return a method instance for a given function. This is primarily useful for rspec-puppet

# File lib/puppetlabs_spec_helper/puppetlabs_spec/puppet_internals.rb, line 35
def function_method(name, parts = {})
  scope = parts[:scope] || scope()
  # Ensure the method instance is defined by side-effect of checking if it
  # exists.  This is a hack, but at least it's a hidden hack and not an
  # exposed hack.
  return nil unless Puppet::Parser::Functions.function(name)

  scope.method(:"function_#{name}")
end
node(parts = {}) click to toggle source
# File lib/puppetlabs_spec_helper/puppetlabs_spec/puppet_internals.rb, line 24
def node(parts = {})
  node_name = parts[:name] || 'testinghost'
  options = parts[:options] || {}
  node_environment = Puppet::Node::Environment.create(parts[:environment] || 'test', [])
  options[:environment] = node_environment
  Puppet::Node.new(node_name, options)
end
resource(parts = {}) click to toggle source
# File lib/puppetlabs_spec_helper/puppetlabs_spec/puppet_internals.rb, line 11
def resource(parts = {})
  resource_type = parts[:type] || :hostclass
  resource_name = parts[:name] || 'testing'
  Puppet::Resource::Type.new(resource_type, resource_name)
end

Private Instance Methods

compiler(parts = {}) click to toggle source
# File lib/puppetlabs_spec_helper/puppetlabs_spec/puppet_internals.rb, line 18
def compiler(parts = {})
  compiler_node = parts[:node] || node
  Puppet::Parser::Compiler.new(compiler_node)
end
function_method(name, parts = {}) click to toggle source

Return a method instance for a given function. This is primarily useful for rspec-puppet

# File lib/puppetlabs_spec_helper/puppetlabs_spec/puppet_internals.rb, line 35
def function_method(name, parts = {})
  scope = parts[:scope] || scope()
  # Ensure the method instance is defined by side-effect of checking if it
  # exists.  This is a hack, but at least it's a hidden hack and not an
  # exposed hack.
  return nil unless Puppet::Parser::Functions.function(name)

  scope.method(:"function_#{name}")
end
node(parts = {}) click to toggle source
# File lib/puppetlabs_spec_helper/puppetlabs_spec/puppet_internals.rb, line 24
def node(parts = {})
  node_name = parts[:name] || 'testinghost'
  options = parts[:options] || {}
  node_environment = Puppet::Node::Environment.create(parts[:environment] || 'test', [])
  options[:environment] = node_environment
  Puppet::Node.new(node_name, options)
end
resource(parts = {}) click to toggle source
# File lib/puppetlabs_spec_helper/puppetlabs_spec/puppet_internals.rb, line 11
def resource(parts = {})
  resource_type = parts[:type] || :hostclass
  resource_name = parts[:name] || 'testing'
  Puppet::Resource::Type.new(resource_type, resource_name)
end