From 770a8ea2beb58cff52f5e532a777d7046aa2efb0 Mon Sep 17 00:00:00 2001 From: Brice Figureau Date: Sat, 24 Apr 2010 13:47:00 +0200 Subject: Fix #3665 - main class shouldn't be a subscope of itself During the refactoring of AST hostclass/node to non AST objects, we lost the fact that the main class already comes with a scope (ie the top one), so when we evaluate its code we shouldn't create a subscope for it. Signed-off-by: Brice Figureau --- lib/puppet/resource/type.rb | 2 +- spec/unit/resource/type_spec.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/puppet/resource/type.rb b/lib/puppet/resource/type.rb index ab57f962f..825cce39e 100644 --- a/lib/puppet/resource/type.rb +++ b/lib/puppet/resource/type.rb @@ -69,7 +69,7 @@ class Puppet::Resource::Type scope = tmp end - scope = subscope(scope, resource) + scope = subscope(scope, resource) unless resource.title == :main set_resource_parameters(resource, scope) diff --git a/spec/unit/resource/type_spec.rb b/spec/unit/resource/type_spec.rb index fdb81f760..781721d84 100755 --- a/spec/unit/resource/type_spec.rb +++ b/spec/unit/resource/type_spec.rb @@ -412,6 +412,14 @@ describe Puppet::Resource::Type do @type.evaluate_code(@resource) end + it "should not create a subscope for the :main class" do + @resource.stubs(:title).returns(:main) + @type.expects(:subscope).never + @type.expects(:set_resource_parameters).with(@resource, @scope) + + @type.evaluate_code(@resource) + end + it "should store the class scope" do @type.evaluate_code(@resource) @scope.class_scope(@type).should be_instance_of(@scope.class) -- cgit