summaryrefslogtreecommitdiffstats
path: root/spec/unit/parser/scope_spec.rb
diff options
context:
space:
mode:
authorJacob Helwig <jacob@puppetlabs.com>2011-04-15 09:52:56 -0700
committerJacob Helwig <jacob@puppetlabs.com>2011-04-19 11:03:40 -0700
commit656eff821bec534a23e3e81e86ddbe3fc28f10ed (patch)
treec38ace649b9488a40d46dc3db07b9bc9eb790ab8 /spec/unit/parser/scope_spec.rb
parentbee1ef73e5c83541edcf1249f062ba832618da48 (diff)
downloadpuppet-656eff821bec534a23e3e81e86ddbe3fc28f10ed.tar.gz
puppet-656eff821bec534a23e3e81e86ddbe3fc28f10ed.tar.xz
puppet-656eff821bec534a23e3e81e86ddbe3fc28f10ed.zip
(#4655) Allow stage to be set using a default class parameter
For example: stage{ pre: before => Stage[main] } class someclass ($stage=pre ) { ... } class { someclass: } This transplants adding the edge from the resource to the stage from the compiler into when the resource is evaluated. This moves adding the stage edges to after when the defaults are copied into the resources, making them available. Paired-with: Jesse Wolfe <jesse@puppetlabs.com>
Diffstat (limited to 'spec/unit/parser/scope_spec.rb')
-rwxr-xr-xspec/unit/parser/scope_spec.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/spec/unit/parser/scope_spec.rb b/spec/unit/parser/scope_spec.rb
index 9895f446b..639512874 100755
--- a/spec/unit/parser/scope_spec.rb
+++ b/spec/unit/parser/scope_spec.rb
@@ -123,7 +123,11 @@ describe Puppet::Parser::Scope do
def create_class_scope(name)
klass = newclass(name)
- Puppet::Parser::Resource.new("class", name, :scope => @scope, :source => mock('source')).evaluate
+
+ catalog = Puppet::Resource::Catalog.new
+ catalog.add_resource(Puppet::Parser::Resource.new("stage", :main, :scope => Puppet::Parser::Scope.new))
+
+ Puppet::Parser::Resource.new("class", name, :scope => @scope, :source => mock('source'), :catalog => catalog).evaluate
@scope.class_scope(klass)
end
@@ -418,13 +422,15 @@ describe Puppet::Parser::Scope do
before do
@scopes = {}
klass = @scope.known_resource_types.add(Puppet::Resource::Type.new(:hostclass, ""))
- Puppet::Parser::Resource.new("class", :main, :scope => @scope, :source => mock('source')).evaluate
+ @catalog = Puppet::Resource::Catalog.new
+ @catalog.add_resource(Puppet::Parser::Resource.new("stage", :main, :scope => @scope))
+ Puppet::Parser::Resource.new("class", :main, :scope => @scope, :source => mock('source'), :catalog => @catalog).evaluate
@scopes[""] = @scope.class_scope(klass)
@scopes[""].setvar("test", "value")
%w{one one::two one::two::three}.each do |name|
klass = @scope.known_resource_types.add(Puppet::Resource::Type.new(:hostclass, name))
- Puppet::Parser::Resource.new("class", name, :scope => @scope, :source => mock('source')).evaluate
+ Puppet::Parser::Resource.new("class", name, :scope => @scope, :source => mock('source'), :catalog => @catalog).evaluate
@scopes[name] = @scope.class_scope(klass)
@scopes[name].setvar("test", "value-#{name.sub(/.+::/,'')}")
end