X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fremote_test.py;h=8b3def2b8c634493bf487ed656d10dc62b90f2c9;hb=7c0eb56f4;hp=cd2e46fe219e61a41c9515405144d309c8b72119;hpb=7db35de508f4ce1f04eb7e28e454829c66f7635a;p=vpp.git diff --git a/test/remote_test.py b/test/remote_test.py index cd2e46fe219..8b3def2b8c6 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -1,16 +1,19 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 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 +import sys -from framework import VppTestCase -from aenum import Enum +if sys.version_info < (3,): + from aenum import IntEnum, IntFlag +else: + from enum import IntEnum, IntFlag class SerializableClassCopy(object): @@ -249,12 +252,14 @@ class RemoteClass(Process): if name[0] == '_': if name in ['__weakref__']: continue + if name in ['__dict__']: + continue if not (name.startswith('__') and name.endswith('__')): continue if callable(member) and not isinstance(member, property): continue if not self._serializable(member): - continue + member = self._make_serializable(member) setattr(copy, name, member) return copy @@ -270,7 +275,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)