summaryrefslogtreecommitdiffstats
path: root/test/client
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-04-28 04:08:32 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-04-28 04:08:32 +0000
commit9539dbb5c8b54805a6c26f84f15abd6fdb5532b2 (patch)
tree8c5c508063b6159c0ac38072e2ef2180f5995967 /test/client
parent9b627cd0e061316feb73f332abb3c1e4e7aefe28 (diff)
downloadpuppet-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
Diffstat (limited to 'test/client')
-rw-r--r--test/client/pelement.rb99
1 files changed, 99 insertions, 0 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