summaryrefslogtreecommitdiffstats
path: root/spec/unit/parser
diff options
context:
space:
mode:
authorMarkus Roberts <Markus@reality.com>2010-08-22 10:14:03 -0700
committerMarkus Roberts <Markus@reality.com>2010-08-24 18:08:14 -0700
commit491c31dcbdb0977c0377cb276cfe32a4c24e0e1a (patch)
tree111d2cddb1e877646c6b1bffccd09eb3bb747ddc /spec/unit/parser
parent302d657658db068c0c593545e92923659608c5a3 (diff)
downloadpuppet-491c31dcbdb0977c0377cb276cfe32a4c24e0e1a.tar.gz
puppet-491c31dcbdb0977c0377cb276cfe32a4c24e0e1a.tar.xz
puppet-491c31dcbdb0977c0377cb276cfe32a4c24e0e1a.zip
Fix for #4542 -- included classes weren't assigned proper stages
This commit unifies the code paths on which classes are added, alters the default stage to respect the stage of the parent if any, and assures that the resource is notified if its stage is assigned (turning an implicit stage into an explicit one).
Diffstat (limited to 'spec/unit/parser')
-rwxr-xr-xspec/unit/parser/compiler_spec.rb13
1 files changed, 12 insertions, 1 deletions
diff --git a/spec/unit/parser/compiler_spec.rb b/spec/unit/parser/compiler_spec.rb
index e8c06dd0b..22d52f257 100755
--- a/spec/unit/parser/compiler_spec.rb
+++ b/spec/unit/parser/compiler_spec.rb
@@ -430,7 +430,18 @@ describe Puppet::Parser::Compiler do
lambda { @compiler.add_resource(@scope, resource) }.should raise_error(ArgumentError)
end
- it "should add edges from the class resources to the main stage if no stage is specified" do
+ it "should add edges from the class resources to the parent's stage if no stage is specified" do
+ main = @compiler.catalog.resource(:stage, :main)
+ foo_stage = resource(:stage, :foo_stage)
+ @compiler.add_resource(@scope, foo_stage)
+ resource = resource(:class, "foo")
+ @scope.stubs(:resource).returns(:stage => :foo_stage)
+ @compiler.add_resource(@scope, resource)
+
+ @compiler.catalog.should be_edge(foo_stage, resource)
+ end
+
+ it "should add edges from top-level class resources to the main stage if no stage is specified" do
main = @compiler.catalog.resource(:stage, :main)
resource = resource(:class, "foo")
@compiler.add_resource(@scope, resource)