diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-10-18 06:01:18 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-10-18 06:01:18 +0000 |
| commit | 3a6683ea720a53bd2ddb34b9215bdc676bdcdb2c (patch) | |
| tree | 3865ab57a73d5b07554cda594eb9c5fff15b027a /test | |
| parent | 05080ff50b73597f0a3f86242b63985a1e5e6003 (diff) | |
| download | puppet-3a6683ea720a53bd2ddb34b9215bdc676bdcdb2c.tar.gz puppet-3a6683ea720a53bd2ddb34b9215bdc676bdcdb2c.tar.xz puppet-3a6683ea720a53bd2ddb34b9215bdc676bdcdb2c.zip | |
Changing the realize() function to be just syntactic sugar for a collection -- it literally creates a collector object now. The benefit of this is that it is late-binding, so file order does not affect whether a resource is available.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1810 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'test')
| -rwxr-xr-x | test/language/collector.rb | 36 | ||||
| -rwxr-xr-x | test/language/functions.rb | 22 |
2 files changed, 56 insertions, 2 deletions
diff --git a/test/language/collector.rb b/test/language/collector.rb index 0204778de..ceab76ccc 100755 --- a/test/language/collector.rb +++ b/test/language/collector.rb @@ -22,6 +22,42 @@ class TestCollector < Test::Unit::TestCase @interp, @scope, @source = mkclassframing end + # Test just collecting a specific resource. This is used by the 'realize' + # function, and it's much faster than iterating over all of the resources. + def test_collect_resource + # Make a couple of virtual resources + one = mkresource(:type => "file", :title => "/tmp/virtual1", + :virtual => true, :params => {:owner => "root"}) + two = mkresource(:type => "file", :title => "/tmp/virtual2", + :virtual => true, :params => {:owner => "root"}) + @scope.setresource one + @scope.setresource two + + # Now make a collector + coll = nil + assert_nothing_raised do + coll = Puppet::Parser::Collector.new(@scope, "file", nil, nil, :virtual) + end + + # Now set the resource in the collector + assert_nothing_raised do + coll.resources = one.ref + end + + # Now run the collector + assert_nothing_raised do + coll.evaluate + end + + # And make sure the resource is no longer virtual + assert(! one.virtual?, + "Resource is still virtual") + + # But the other still is + assert(two.virtual?, + "Resource got realized") + end + def test_virtual # Make a virtual resource virtual = mkresource(:type => "file", :title => "/tmp/virtual", diff --git a/test/language/functions.rb b/test/language/functions.rb index 21af606db..bd7143db6 100755 --- a/test/language/functions.rb +++ b/test/language/functions.rb @@ -321,19 +321,37 @@ class TestLangFunctions < Test::Unit::TestCase @scope.function_realize(ref) end + # Make sure it created a collection + assert_equal(1, @scope.collections.length, + "Did not set collection") + + assert_nothing_raised do + @scope.collections.each do |coll| coll.evaluate end + end + @scope.collections.clear + # Now make sure the virtual resource is no longer virtual assert(! virtual.virtual?, "Did not make virtual resource real") # Make sure we puke on any resource that doesn't exist - none = Puppet::Parser::Resource::Reference.new( :type => "file", :title => "/tmp/nosuchfile", :scope => @scope ) - assert_raise(Puppet::ParseError) do + # The function works + assert_nothing_raised do @scope.function_realize(none) end + + # Make sure it created a collection + assert_equal(1, @scope.collections.length, + "Did not set collection") + + # But the collection fails + assert_raise(Puppet::ParseError) do + @scope.collections.each do |coll| coll.evaluate end + end end end |
