case-insensitive file system, leading to test failures. This was due to using
the TestCase objects directly instead of the guard in the test_main() function.
Move over to a class decorator instead to control if the tests should be run.
from test import support as test_support
import unittest
import importlib
+from .. import support
from . import test_path_hook
+@support.case_insensitive_tests
class ExtensionModuleCaseSensitivityTest(unittest.TestCase):
def find_module(self):
def test_main():
- if sys.platform not in ('win32', 'darwin', 'cygwin'):
- return
test_support.run_unittest(ExtensionModuleCaseSensitivityTest)
import unittest
+@support.case_insensitive_tests
class CaseSensitivityTest(unittest.TestCase):
"""PEP 235 dictates that on case-preserving, case-insensitive file systems
def test_main():
- if sys.platform not in ('win32', 'darwin', 'cygwin'):
- return
test_support.run_unittest(CaseSensitivityTest)
else:
return fxn
+
+def case_insensitive_tests(class_):
+ """Class decorator that nullifies tests that require a case-insensitive
+ file system."""
+ if sys.platform not in ('win32', 'darwin', 'cygwin'):
+ return object()
+ else:
+ return class_
+
+
@contextmanager
def uncache(*names):
"""Uncache a module from sys.modules.