diff options
author | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2020-10-30 23:15:01 +0100 |
---|---|---|
committer | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2020-11-28 16:09:53 +0100 |
commit | c26cf83e513676ba5078a5478dd37ef6c36bfcc4 (patch) | |
tree | 3da707b57ebb65b9a7cd2cd7077513117d94e2e9 | |
parent | 4764b49186d6daf4f7690fb66f851dc4a1d231e9 (diff) | |
download | pylint-git-c26cf83e513676ba5078a5478dd37ef6c36bfcc4.tar.gz |
Create a testutils/test_reporter.py file
-rw-r--r-- | pylint/testutils/__init__.py | 76 | ||||
-rw-r--r-- | pylint/testutils/test_reporter.py | 80 |
2 files changed, 82 insertions, 74 deletions
diff --git a/pylint/testutils/__init__.py b/pylint/testutils/__init__.py index a248ac558..c45ed494f 100644 --- a/pylint/testutils/__init__.py +++ b/pylint/testutils/__init__.py @@ -41,7 +41,7 @@ import tempfile import tokenize from glob import glob from io import StringIO -from os import close, getcwd, linesep, remove, sep, write +from os import close, remove, write from os.path import abspath, basename, dirname, exists, join, splitext import astroid @@ -49,7 +49,7 @@ import pytest from pylint import checkers, interfaces from pylint.lint import PyLinter -from pylint.reporters import BaseReporter +from pylint.testutils.test_reporter import FunctionalTestReporter, TestReporter from pylint.utils import ASTWalker SYS_VERS_STR = "%d%d%d" % sys.version_info[:3] @@ -96,67 +96,6 @@ def _get_tests_info(input_dir, msg_dir, prefix, suffix): return result -class TestReporter(BaseReporter): - """reporter storing plain text messages""" - - __implements__ = interfaces.IReporter - - def __init__(self): # pylint: disable=super-init-not-called - - self.message_ids = {} - self.reset() - self.path_strip_prefix = getcwd() + sep - - def reset(self): - self.out = StringIO() - self.messages = [] - - def handle_message(self, msg): - """manage message of different type and in the context of path """ - obj = msg.obj - line = msg.line - msg_id = msg.msg_id - msg = msg.msg - self.message_ids[msg_id] = 1 - if obj: - obj = ":%s" % obj - sigle = msg_id[0] - if linesep != "\n": - # 2to3 writes os.linesep instead of using - # the previously used line separators - msg = msg.replace("\r\n", "\n") - self.messages.append("%s:%3s%s: %s" % (sigle, line, obj, msg)) - - def finalize(self): - self.messages.sort() - for msg in self.messages: - print(msg, file=self.out) - result = self.out.getvalue() - self.reset() - return result - - # pylint: disable=unused-argument - def on_set_current_module(self, module, filepath): - pass - - # pylint: enable=unused-argument - - def display_reports(self, layout): - """ignore layouts""" - - _display = None - - -class MinimalTestReporter(BaseReporter): - def handle_message(self, msg): - self.messages.append(msg) - - def on_set_current_module(self, module, filepath): - self.messages = [] - - _display = None - - class Message( collections.namedtuple("Message", ["msg_id", "line", "node", "args", "confidence"]) ): @@ -361,17 +300,6 @@ def parse_python_version(ver_str): return tuple(int(digit) for digit in ver_str.split(".")) -class FunctionalTestReporter(BaseReporter): # pylint: disable=abstract-method - def handle_message(self, msg): - self.messages.append(msg) - - def on_set_current_module(self, module, filepath): - self.messages = [] - - def display_reports(self, layout): - """Ignore layouts and don't call self._display().""" - - class FunctionalTestFile: """A single functional test case file with options.""" diff --git a/pylint/testutils/test_reporter.py b/pylint/testutils/test_reporter.py new file mode 100644 index 000000000..027c3901f --- /dev/null +++ b/pylint/testutils/test_reporter.py @@ -0,0 +1,80 @@ +# 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 + +from io import StringIO +from os import getcwd, linesep, sep + +from pylint import interfaces +from pylint.reporters import BaseReporter + + +class TestReporter(BaseReporter): + """reporter storing plain text messages""" + + __implements__ = interfaces.IReporter + + def __init__(self): # pylint: disable=super-init-not-called + + self.message_ids = {} + self.reset() + self.path_strip_prefix = getcwd() + sep + + def reset(self): + self.out = StringIO() + self.messages = [] + + def handle_message(self, msg): + """manage message of different type and in the context of path """ + obj = msg.obj + line = msg.line + msg_id = msg.msg_id + msg = msg.msg + self.message_ids[msg_id] = 1 + if obj: + obj = ":%s" % obj + sigle = msg_id[0] + if linesep != "\n": + # 2to3 writes os.linesep instead of using + # the previously used line separators + msg = msg.replace("\r\n", "\n") + self.messages.append("%s:%3s%s: %s" % (sigle, line, obj, msg)) + + def finalize(self): + self.messages.sort() + for msg in self.messages: + print(msg, file=self.out) + result = self.out.getvalue() + self.reset() + return result + + # pylint: disable=unused-argument + def on_set_current_module(self, module, filepath): + pass + + # pylint: enable=unused-argument + + def display_reports(self, layout): + """ignore layouts""" + + _display = None + + +class MinimalTestReporter(BaseReporter): + def handle_message(self, msg): + self.messages.append(msg) + + def on_set_current_module(self, module, filepath): + self.messages = [] + + _display = None + + +class FunctionalTestReporter(BaseReporter): # pylint: disable=abstract-method + def handle_message(self, msg): + self.messages.append(msg) + + def on_set_current_module(self, module, filepath): + self.messages = [] + + def display_reports(self, layout): + """Ignore layouts and don't call self._display().""" |