Использование (скрыто) со старыми версиями Python

В модуле unittestмне нравится функция для пропуска тестов, но она доступна только в Python 2.7+.

Например, рассмотрим test.py:

import unittest
try:
    import proprietary_module
except ImportError:
    proprietary_module = None

class TestProprietary(unittest.TestCase):
    @unittest.skipIf(proprietary_module is None, "requries proprietary module")
    def test_something_proprietary(self):
        self.assertTrue(proprietary_module is not None)

if __name__ == '__main__':
    unittest.main()

Если я попытаюсь запустить тест с более ранней версией Python, я получу сообщение об ошибке:

Traceback (most recent call last):
  File "test.py", line 7, in 
    class TestProprietary(unittest.TestCase):
  File "test.py", line 8, in TestProprietary
    @unittest.skipIf(proprietary_module is None, "requries proprietary module")
AttributeError: 'module' object has no attribute 'skipIf'

Есть ли способ «обмануть» более старые версии Python игнорировать декоратор unittest и пропускать тест?

12
задан Mike T 12 June 2012 в 05:54
поделиться