From e6bb3e98d5d00e4ac7c058ba17f562ebfde8729b Mon Sep 17 00:00:00 2001 From: Tim Burke Date: Wed, 13 Feb 2019 16:07:10 -0800 Subject: Make TestBackendsEnabled work on py3 Change-Id: I483488fd53516d44074f18168db6f3445be455b5 --- test/test_pyeclib_api.py | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/test/test_pyeclib_api.py b/test/test_pyeclib_api.py index d53953a..31bedbd 100644 --- a/test/test_pyeclib_api.py +++ b/test/test_pyeclib_api.py @@ -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__': -- cgit v1.2.1