Итак, я пытаюсь реализовать нечто похожее на то, как unittesting frameworks делают следующее:
class BaseTest(T.TestCase):
# Disables this test from being run
__test__ = False
def test_foo(self): pass
# However this test is picked up because it doesn't directly have __test__ set
class InheritingTest(BaseTest): pass
Я считаю своеобразным:
# >> InheritingTest.__test__
# False
Который указал бы мне, что он не использует metaclass для установки __test__
на True
при построении типа.
Я пробовал grepping через библиотеку python find . -name "*.py" | xargs grep '__test__'
, но, похоже, не нашел ничего связанного с этим.
Мой подход "угадывания" при решении этой проблемы заключается в следующем:
def is_class_tested(cls):
return cls.__dict__.get('__test__', True)
Однако мне это кажется хрупким... Есть ли более чистый/лучший способ сделать это, который работает во всех случаях? Есть ли вероятность, что класс не будет иметь свойство __dict__
?