dotest.py: bugfix: test filters with -f do not work on Python3
authorJonas Devlieghere <jonas@devlieghere.com>
Fri, 20 Sep 2019 23:41:29 +0000 (23:41 +0000)
committerJonas Devlieghere <jonas@devlieghere.com>
Fri, 20 Sep 2019 23:41:29 +0000 (23:41 +0000)
dotest -f does not work on Python3.

The name types.UnboundMethodType was an alias for types.MethodType in
2.7, but it does not exist in python3. MethodType works in both.

Also the actual type returned from SomeClass.some_method in python3
will be types.Function, not MethodType.

Patch by: Lawrence D'Anna

Differential revision: https://reviews.llvm.org/D67791

llvm-svn: 372441

lldb/third_party/Python/module/unittest2/unittest2/loader.py

index 996dd76..87edddc 100644 (file)
@@ -117,7 +117,7 @@ class TestLoader(unittest.TestLoader):
             return self.loadTestsFromModule(obj)
         elif isinstance(obj, type) and issubclass(obj, unittest.TestCase):
             return self.loadTestsFromTestCase(obj)
-        elif (isinstance(obj, types.UnboundMethodType) and
+        elif (isinstance(obj, (types.MethodType, types.FunctionType)) and
               isinstance(parent, type) and
               issubclass(parent, case.TestCase)):
             return self.suiteClass([parent(obj.__name__)])