python3 - first draft looks kind of OK
[tests.git] / system / TestApiserver.py
index a0024a6..708e20e 100644 (file)
@@ -3,7 +3,7 @@
 #
 # wrapper to xmlrpc server, that support dry-run commands
 # we dont want to have to depend on PLCAPI, so:
-import xmlrpclib
+import xmlrpc.client
 
 # the default value is for the dry run mode
 server_methods = [ ('GetNodes' ,  []),
@@ -57,33 +57,34 @@ server_methods = [ ('GetNodes' ,  []),
 
 class TestApiserver:
     class Callable:
-        def __init__(self,server,dry_run,method,defaults):
-            self.server=server
-            self.dry_run=dry_run
-            self.method=method
-            self.defaults=defaults
+        def __init__(self, server, dry_run, method, defaults):
+            self.server = server
+            self.dry_run = dry_run
+            self.method = method
+            self.defaults = defaults
         def __call__ (self, *args):
             if self.dry_run:
-                print "dry_run:",self.method,
-                if len(args)>0 and type(args[0])==type({}) and args[0].has_key('AuthMethod'):
-                    print '<auth>',
-                    args=args[1:]
-                print '(',args,')'
+                print("dry_run:",self.method, end=' ')
+                if len(args) > 0 and type(args[0]) == type({}) and 'AuthMethod' in args[0]:
+                    print('<auth>', end=' ')
+                    args = args[1:]
+                print('(', args, ')')
                 return self.defaults
             else:
-                actual_method=getattr(self.server,self.method)
+                actual_method = getattr(self.server, self.method)
                 return actual_method(*args)
 
-    def __init__(self,url,dry_run=False):
-        self.apiserver = xmlrpclib.ServerProxy(url,allow_none=True)
-        self.dry_run=dry_run
-        for (method,defaults) in server_methods:
-            setattr(self,method,TestApiserver.Callable(self.apiserver,dry_run,method,defaults))
+    def __init__(self, url, dry_run=False):
+        self.apiserver = xmlrpc.client.ServerProxy(url, allow_none=True,
+                                                   use_builtin_types=True)
+        self.dry_run = dry_run
+        for method, defaults in server_methods:
+            setattr(self, method, TestApiserver.Callable(self.apiserver, dry_run, method, defaults))
     
     def set_dry_run (self, dry_run):
-        self.dry_run=dry_run
-        for (method,defaults) in server_methods:
-            getattr(self,method).dry_run = dry_run
+        self.dry_run = dry_run
+        for (method, defaults) in server_methods:
+            getattr(self, method).dry_run = dry_run
 
     def has_method (self, methodname):
         return methodname in self.apiserver.system.listMethods()