fix the way we determine if the PLCAPI is newinterface (AddIpAddress) or not
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 26 Apr 2012 07:25:41 +0000 (09:25 +0200)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Thu, 26 Apr 2012 07:25:41 +0000 (09:25 +0200)
system/TestApiserver.py
system/TestPlc.py

index c5389f2..460e322 100644 (file)
@@ -48,6 +48,7 @@ server_methods = [ ('GetNodes' ,  []),
                    ('AddLeases', True),
                    ('GetLeases', []),
                    ('DeleteLeases',True),
+                   ('system.listMethods',[]),
                    ]
 
 class TestApiserver:
@@ -70,7 +71,7 @@ class TestApiserver:
                 return actual_method(*args)
 
     def __init__(self,url,dry_run=False):
-        self.apiserver = xmlrpclib.Server(url,allow_none=True)
+        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))
@@ -79,3 +80,6 @@ class TestApiserver:
         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()
index f1ecd27..eb7a15e 100644 (file)
@@ -147,7 +147,7 @@ class TestPlc:
        self.apiserver=TestApiserver(self.url,options.dry_run)
         
     def has_addresses_api (self):
-        return hasattr(self.apiserver,'AddIpAddress')
+        return self.apiserver.has_method('AddIpAddress')
 
     def name(self):
         name=self.plc_spec['name']