Convert sanity tests to plugins. (#28425)

* Move sanity into directory.
* Omit abstract classes from returned subclass list.
* Split sanity tests out into plugins.
* Fix abstract class handling for Python 3.
This commit is contained in:
Matt Clay 2017-08-18 17:21:11 -07:00 committed by GitHub
commit 688823014f
15 changed files with 1164 additions and 912 deletions

View file

@ -2,7 +2,9 @@
from __future__ import absolute_import, print_function
import abc
import errno
import inspect
import os
import pipes
import pkgutil
@ -12,6 +14,8 @@ import re
import sys
import time
ABC = abc.ABCMeta('ABC', (object,), {'__slots__': ()}) # compatible with Python 2 *and* 3
def is_shippable():
"""
@ -476,7 +480,8 @@ def get_subclasses(class_type):
for child in parent.__subclasses__():
if child not in subclasses:
subclasses.add(child)
if not inspect.isabstract(child):
subclasses.add(child)
queue.append(child)
return subclasses