blob: 17981177cfb83f8404e81f7e735c36139f6f3187 [file] [log] [blame]
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/master/LICENSE
import contextlib
import io
import os
import sys
import pytest
import pylint.lint
def is_module(filename):
return filename.endswith(".py")
def is_package(filename, location):
return os.path.exists(os.path.join(location, filename, "__init__.py"))
@contextlib.contextmanager
def _patch_stdout(out):
sys.stdout = out
try:
yield
finally:
sys.stdout = sys.__stdout__
LIB_DIRS = [os.path.dirname(os.__file__)]
MODULES_TO_CHECK = [
(location, module)
for location in LIB_DIRS
for module in os.listdir(location)
if is_module(module) or is_package(module, location)
]
MODULES_NAMES = [m[1] for m in MODULES_TO_CHECK]
@pytest.mark.acceptance
@pytest.mark.parametrize(
("test_module_location", "test_module_name"), MODULES_TO_CHECK, ids=MODULES_NAMES
)
def test_libmodule(test_module_location, test_module_name):
os.chdir(test_module_location)
with _patch_stdout(io.StringIO()):
try:
pylint.lint.Run([test_module_name, "--enable=all", "--ignore=test"])
except SystemExit as ex:
assert ex.code != 32
return
assert False, "shouldn't get there"