8th day of python challenges 111-117
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
# For details: https://github.com/PyCQA/pylint/blob/master/COPYING
|
||||
|
||||
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"
|
Reference in New Issue
Block a user