debugpy/tests/__init__.py
2018-05-02 18:05:13 -06:00

45 lines
1.4 KiB
Python

from __future__ import absolute_import
import os
import os.path
import sys
import unittest
# Importing "ptvsd" here triggers the vendoring code before any vendored
# code ever gets imported.
import ptvsd # noqa
from ptvsd._vendored import list_all as vendored
TEST_ROOT = os.path.dirname(__file__) # noqa
PROJECT_ROOT = os.path.dirname(TEST_ROOT) # noqa
VENDORED_ROOTS = vendored(resolve=True) # noqa
def skip_py2(decorated=None):
if sys.version_info[0] > 2:
return decorated
msg = 'not tested under Python 2'
if decorated is None:
raise unittest.SkipTest(msg)
else:
decorator = unittest.skip(msg)
return decorator(decorated)
if sys.version_info[0] == 2:
# Hack alert!!!
class SkippingTestSuite(unittest.TestSuite):
def __init__(self, tests=()):
if tests and type(tests[0]).__name__ == 'ModuleImportFailure':
_, exc, _ = sys.exc_info()
if isinstance(exc, unittest.SkipTest):
from unittest.loader import _make_failed_load_tests
suite = _make_failed_load_tests(
tests[0]._testMethodName,
exc,
type(self),
)
tests = tuple(suite)
unittest.TestSuite.__init__(self, tests)
unittest.TestLoader.suiteClass = SkippingTestSuite