diff options
Diffstat (limited to 'spec/lib/puppet_spec/compiler.rb')
-rw-r--r-- | spec/lib/puppet_spec/compiler.rb | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/spec/lib/puppet_spec/compiler.rb b/spec/lib/puppet_spec/compiler.rb index cf4851807..4757705aa 100644 --- a/spec/lib/puppet_spec/compiler.rb +++ b/spec/lib/puppet_spec/compiler.rb @@ -1,7 +1,10 @@ module PuppetSpec::Compiler + module_function + def compile_to_catalog(string, node = Puppet::Node.new('foonode')) Puppet[:code] = string - Puppet::Parser::Compiler.compile(node) + # see lib/puppet/indirector/catalog/compiler.rb#filter + Puppet::Parser::Compiler.compile(node).filter { |r| r.virtual? } end def compile_to_ral(manifest) @@ -19,7 +22,11 @@ module PuppetSpec::Compiler end def apply_compiled_manifest(manifest, prioritizer = Puppet::Graph::SequentialPrioritizer.new) - transaction = Puppet::Transaction.new(compile_to_ral(manifest), + catalog = compile_to_ral(manifest) + if block_given? + catalog.resources.each { |res| yield res } + end + transaction = Puppet::Transaction.new(catalog, Puppet::Transaction::Report.new("apply"), prioritizer) transaction.evaluate @@ -28,6 +35,12 @@ module PuppetSpec::Compiler transaction end + def apply_with_error_check(manifest) + apply_compiled_manifest(manifest) do |res| + res.expects(:err).never + end + end + def order_resources_traversed_in(relationships) order_seen = [] relationships.traverse { |resource| order_seen << resource.ref } |