summaryrefslogtreecommitdiff
path: root/spec/lib/puppet_spec/compiler.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/puppet_spec/compiler.rb')
-rw-r--r--spec/lib/puppet_spec/compiler.rb17
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 }