Make TestBackendsEnabled work on py3

Change-Id: I483488fd53516d44074f18168db6f3445be455b5
This commit is contained in:
Tim Burke 2019-02-13 16:07:10 -08:00
parent 8d0afbb032
commit e6bb3e98d5
1 changed files with 24 additions and 20 deletions

View File

@ -30,6 +30,7 @@ import unittest
from distutils.version import StrictVersion
from itertools import combinations
import six
import pyeclib.ec_iface
from pyeclib.ec_iface import ECBackendNotSupported
@ -791,28 +792,31 @@ class TestPyECLibDriver(unittest.TestCase):
(baseline_usage, new_usage))
class TestBackendsEnabled(unittest.TestCase):
class BackendsEnabledMetaclass(type):
def __new__(meta, cls_name, cls_bases, cls_dict):
for ec_type in ALL_EC_TYPES:
def dummy(self, ec_type=ec_type):
if ec_type not in VALID_EC_TYPES:
raise unittest.SkipTest
if ec_type == 'shss':
k = 10
m = 4
elif ec_type == 'libphazr':
k = 4
m = 4
else:
k = 10
m = 5
ECDriver(k=k, m=m, ec_type=ec_type)
dummy.__name__ = 'test_%s_available' % ec_type
cls_dict[dummy.__name__] = dummy
return type.__new__(meta, cls_name, cls_bases, cls_dict)
class TestBackendsEnabled(six.with_metaclass(BackendsEnabledMetaclass,
unittest.TestCase)):
'''Based on TestPyECLibDriver.test_valid_algo above, but these tests
should *always* either pass or skip.'''
class __metaclass__(type):
def __new__(meta, cls_name, cls_bases, cls_dict):
for ec_type in ALL_EC_TYPES:
def dummy(self, ec_type=ec_type):
if ec_type not in VALID_EC_TYPES:
raise unittest.SkipTest
if ec_type == 'shss':
k = 10
m = 4
elif ec_type == 'libphazr':
k = 4
m = 4
else:
k = 10
m = 5
ECDriver(k=k, m=m, ec_type=ec_type)
dummy.__name__ = 'test_%s_available' % ec_type
cls_dict[dummy.__name__] = dummy
return type.__new__(meta, cls_name, cls_bases, cls_dict)
if __name__ == '__main__':