diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-10-18 04:45:55 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-10-18 04:45:55 +0000 |
| commit | a05b8f5116af3a4908d5aed2a6a320b227609ec7 (patch) | |
| tree | 74eb2ac2000b21d0eb474272575dde415dcf863f /test | |
| parent | 8a4bf1bd9d5ed674c0eed2c64d8a5f587452ede2 (diff) | |
Adding a "realize" function that can be used to make one or more resource non-virtual. It is just syntactic sugar for a collection by title.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1808 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'test')
| -rw-r--r-- | test/data/snippets/virtualresources.pp | 14 | ||||
| -rwxr-xr-x | test/language/functions.rb | 33 | ||||
| -rwxr-xr-x | test/language/snippets.rb | 7 |
3 files changed, 54 insertions, 0 deletions
diff --git a/test/data/snippets/virtualresources.pp b/test/data/snippets/virtualresources.pp new file mode 100644 index 000000000..a29406b84 --- /dev/null +++ b/test/data/snippets/virtualresources.pp @@ -0,0 +1,14 @@ +class one { + @file { "/tmp/virtualtest1": content => "one" } + @file { "/tmp/virtualtest2": content => "two" } + @file { "/tmp/virtualtest3": content => "three" } + @file { "/tmp/virtualtest4": content => "four" } +} + +class two { + File <| content == "one" |> + realize File["/tmp/virtualtest2"] + realize(File["/tmp/virtualtest3"], File["/tmp/virtualtest4"]) +} + +include one, two diff --git a/test/language/functions.rb b/test/language/functions.rb index 76b32138d..21af606db 100755 --- a/test/language/functions.rb +++ b/test/language/functions.rb @@ -7,9 +7,11 @@ require 'puppet/parser/interpreter' require 'puppet/parser/parser' require 'puppet/client' require 'puppettest' +require 'puppettest/resourcetesting' class TestLangFunctions < Test::Unit::TestCase include PuppetTest::ParserTesting + include PuppetTest::ResourceTesting def test_functions assert_raise(Puppet::ParseError) do Puppet::Parser::AST::Function.new( @@ -302,6 +304,37 @@ class TestLangFunctions < Test::Unit::TestCase assert(Puppet::Parser::Scope.method_defined?(:function_autofunc), "Did not set function correctly") end + + def test_realize + @interp, @scope, @source = mkclassframing + # Make a virtual resource + virtual = mkresource(:type => "file", :title => "/tmp/virtual", + :virtual => true, :params => {:owner => "root"}) + @scope.setresource virtual + + ref = Puppet::Parser::Resource::Reference.new( + :type => "file", :title => "/tmp/virtual", + :scope => @scope + ) + # Now call the realize function + assert_nothing_raised do + @scope.function_realize(ref) + end + + # 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 + @scope.function_realize(none) + end + end end # $Id$ diff --git a/test/language/snippets.rb b/test/language/snippets.rb index 278218e4f..45137f917 100755 --- a/test/language/snippets.rb +++ b/test/language/snippets.rb @@ -478,6 +478,13 @@ class TestSnippets < Test::Unit::TestCase assert(! FileTest.exists?("/tmp/colltest2"), "Incorrectly collected file") end + def snippet_virtualresources(trans) + %w{1 2 3 4}.each do |num| + assert(FileTest.exists?("/tmp/virtualtest#{num}"), + "Did not collect file #{num}") + end + end + def disabled_snippet_dirchmod(trans) dirs = %w{a b}.collect { |letter| "/tmp/dirchmodtest%s" % letter |
