diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-04-28 04:08:32 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-04-28 04:08:32 +0000 |
commit | 9539dbb5c8b54805a6c26f84f15abd6fdb5532b2 (patch) | |
tree | 8c5c508063b6159c0ac38072e2ef2180f5995967 | |
parent | 9b627cd0e061316feb73f332abb3c1e4e7aefe28 (diff) | |
download | puppet-9539dbb5c8b54805a6c26f84f15abd6fdb5532b2.tar.gz puppet-9539dbb5c8b54805a6c26f84f15abd6fdb5532b2.tar.xz puppet-9539dbb5c8b54805a6c26f84f15abd6fdb5532b2.zip |
Adding in all of the patches necessary to make a prototype rails interface to puppet nodes work. The biggest change is that there is now a separate NetworkClient class for every Client subclass, because otherwise you get namespace collisions. Most everything other change is a relatively minor patch.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1144 980ebf18-57e1-0310-9a29-db15c13687c0
-rw-r--r-- | test/client/pelement.rb | 99 | ||||
-rw-r--r-- | test/server/pelement.rb | 4 |
2 files changed, 101 insertions, 2 deletions
diff --git a/test/client/pelement.rb b/test/client/pelement.rb new file mode 100644 index 000000000..4d782cf03 --- /dev/null +++ b/test/client/pelement.rb @@ -0,0 +1,99 @@ +if __FILE__ == $0 + $:.unshift '..' + $:.unshift '../../lib' + $puppetbase = "../.." +end + +require 'puppet' +require 'puppet/client/pelement' +require 'puppet/server' +require 'test/unit' +require 'puppettest.rb' + +# $Id$ + +class TestPElementClient < Test::Unit::TestCase + include ServerTest + + def mkpelementserver + handlers = { + :CA => {}, # so that certs autogenerate + :PElement => {}, + } + + return mkserver(handlers) + end + + def mkclient + client = nil + assert_nothing_raised { + client = Puppet::Client::PElement.new(:Server => "localhost", + :Port => @@port) + } + + return client + end + + def test_pelements + file = tempfile() + text = "yayness\n" + File.open(file, "w") { |f| f.print text } + + mkpelementserver() + + client = mkclient() + + # Test describing + tobj = nil + assert_nothing_raised { + tobj = client.describe("file", file) + } + + assert(tobj, "Did not get response") + + assert_instance_of(Puppet::TransObject, tobj) + + obj = nil + assert_nothing_raised { + obj = tobj.to_type + } + assert_events([], obj) + File.unlink(file) + assert_events([:file_created], obj) + File.unlink(file) + + # Now test applying + result = nil + assert_nothing_raised { + result = client.apply(tobj) + } + assert(FileTest.exists?(file), "File was not created on apply") + + # Lastly, test "list" + list = nil + assert_nothing_raised { + list = client.list("user") + } + + assert_instance_of(Puppet::TransBucket, list) + + count = 0 + list.each do |tobj| + break if count > 3 + assert_instance_of(Puppet::TransObject, tobj) + + tobj2 = nil + assert_nothing_raised { + tobj2 = client.describe(tobj.type, tobj.name) + } + + obj = nil + assert_nothing_raised { + obj = tobj2.to_type + } + assert_events([], obj) + + count += 1 + end + end +end diff --git a/test/server/pelement.rb b/test/server/pelement.rb index 182a2db3b..13bd3657f 100644 --- a/test/server/pelement.rb +++ b/test/server/pelement.rb @@ -274,7 +274,7 @@ class TestPElementServer < Test::Unit::TestCase server.local = false yaml = nil assert_nothing_raised { - yaml = CGI.escape(YAML::dump(bucket)) + yaml = Base64.encode64(YAML::dump(bucket)) } Puppet::Type.type(:file).clear @@ -285,7 +285,7 @@ class TestPElementServer < Test::Unit::TestCase return end assert_nothing_raised("Could not reload yaml") { - YAML::load(CGI.unescape(yaml)) + YAML::load(Base64.decode64(yaml)) } assert_nothing_raised { |