Skip to content

Commit 65c4172

Browse files
committed
Handle nil autorequire results
When encountering results containing nil from an autorequire-family call, Puppet will skip over them without error but rspec-puppet results in an error. This aligns rspec-puppet with Puppet's behavior. Also, rename the autorelationships spec test so that it runs properly as part of a 'rake spec' invocation.
1 parent 0463408 commit 65c4172

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

lib/rspec-puppet/matchers/create_generic.rb

+2
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,8 @@ def relationship_refs(resource, type, visited = Set.new)
313313
if resource.resource_type.respond_to?(func)
314314
resource.resource_type.send(func) do |t, b|
315315
Array(resource.to_ral.instance_eval(&b)).each do |dep|
316+
next if dep.nil?
317+
316318
res = "#{t.to_s.capitalize}[#{dep}]"
317319
if r = relationship_refs(res, type, visited)
318320
results << res
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
Puppet::Type.newtype(:type_with_all_auto) do
22
ensurable
33
newparam(:name, :namevar => true)
4-
autobefore(:file) { [File.join(self[:name], 'before')] }
5-
autonotify(:file) { [File.join(self[:name], 'notify')] }
6-
autorequire(:file) { [File.join(self[:name], 'require')] }
7-
autosubscribe(:file) { [File.join(self[:name], 'subscribe')] }
4+
autobefore(:file) { [File.join(self[:name], 'before'), nil] }
5+
autonotify(:file) { [File.join(self[:name], 'notify'), nil] }
6+
autorequire(:file) { [File.join(self[:name], 'require'), nil] }
7+
autosubscribe(:file) { [File.join(self[:name], 'subscribe'), nil] }
88
end

0 commit comments

Comments
 (0)