api: Cleanup APIs interface.api
[vpp.git] / test / remote_test.py
index 092d3f8..9c825cc 100644 (file)
@@ -3,14 +3,13 @@
 import inspect
 import os
 import unittest
+from framework import VppTestCase
 from multiprocessing import Process, Pipe
 from pickle import dumps
-
 import six
 from six import moves
-
-from framework import VppTestCase
-from aenum import Enum
+import sys
+from aenum import IntEnum, IntFlag
 
 
 class SerializableClassCopy(object):
@@ -59,12 +58,11 @@ class RemoteClassAttr(object):
                 return
         self._path.append(attr)
         self._remote._remote_exec(RemoteClass.SETATTR, self.path_to_str(),
-                                  True, value=val)
+                                  value=val)
 
     def __call__(self, *args, **kwargs):
-        ret = True if 'vapi' in self.path_to_str() else False
         return self._remote._remote_exec(RemoteClass.CALL, self.path_to_str(),
-                                         ret, *args, **kwargs)
+                                         *args, **kwargs)
 
 
 class RemoteClass(Process):
@@ -134,7 +132,7 @@ class RemoteClass(Process):
                 return
         setattr(RemoteClassAttr(self, None), attr, val)
 
-    def _remote_exec(self, op, path=None, ret=True, *args, **kwargs):
+    def _remote_exec(self, op, path=None, *args, **kwargs):
         """
         Execute given operation on a given, possibly nested, member remotely.
         """
@@ -153,12 +151,9 @@ class RemoteClass(Process):
         args = self._make_serializable(args)
         kwargs = self._make_serializable(kwargs)
         self._pipe[RemoteClass.PIPE_PARENT].send((op, path, args, kwargs))
-        if not ret:
-            # no return value expected
-            return None
         timeout = self._timeout
         # adjust timeout specifically for the .sleep method
-        if path.split('.')[-1] == 'sleep':
+        if path is not None and path.split('.')[-1] == 'sleep':
             if args and isinstance(args[0], (long, int)):
                 timeout += args[0]
             elif 'timeout' in kwargs:
@@ -274,7 +269,7 @@ class RemoteClass(Process):
             if type(obj) is tuple:
                 rv = tuple(rv)
             return rv
-        elif (isinstance(obj, Enum)):
+        elif (isinstance(obj, IntEnum) or isinstance(obj, IntFlag)):
             return obj.value
         else:
             return self._make_obj_serializable(obj)
@@ -305,7 +300,7 @@ class RemoteClass(Process):
 
     def quit_remote(self):
         """ Quit remote execution """
-        self._remote_exec(RemoteClass.QUIT, None, False)
+        self._remote_exec(RemoteClass.QUIT, None)
 
     def get_remote_value(self):
         """ Get value of a remotely held object """