summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2020-10-30 23:15:01 +0100
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2020-11-28 16:09:53 +0100
commitc26cf83e513676ba5078a5478dd37ef6c36bfcc4 (patch)
tree3da707b57ebb65b9a7cd2cd7077513117d94e2e9
parent4764b49186d6daf4f7690fb66f851dc4a1d231e9 (diff)
downloadpylint-git-c26cf83e513676ba5078a5478dd37ef6c36bfcc4.tar.gz
Create a testutils/test_reporter.py file
-rw-r--r--pylint/testutils/__init__.py76
-rw-r--r--pylint/testutils/test_reporter.py80
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()."""