patchtest: make pylint tests compatible with 3.x

pylint 3.x has removed epylint, which is now a separate module. To avoid
adding another recipe or using outdated modules, modify the
test_python_pylint tests so that they use the standard pylint API.

(From OE-Core rev: 72be3d6a116febf46130cccbe12afe5ad93779b5)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Trevor Gamblin 2023-10-31 14:16:13 -04:00 committed by Richard Purdie
parent 2bddb6bb97
commit 3ad5aa3f16

View File

@ -5,8 +5,11 @@
# SPDX-License-Identifier: GPL-2.0-only
import base
from io import StringIO
from data import PatchTestInput
import pylint.epylint as lint
from pylint.reporters.text import TextReporter
import pylint.lint as lint
class PyLint(base.Base):
pythonpatches = []
@ -32,8 +35,10 @@ class PyLint(base.Base):
def pretest_pylint(self):
for pythonpatch in self.pythonpatches:
if pythonpatch.is_modified_file:
(pylint_stdout, pylint_stderr) = lint.py_run(command_options = pythonpatch.path + self.pylint_options, return_std=True)
for line in pylint_stdout.readlines():
pylint_output = StringIO()
reporter = TextReporter(pylint_output)
lint.Run([self.pylint_options, pythonpatch.path], reporter=reporter, exit=False)
for line in pylint_output.readlines():
if not '*' in line:
if line.strip():
self.pylint_pretest[line.strip().split(' ',1)[0]] = line.strip().split(' ',1)[1]
@ -46,8 +51,10 @@ class PyLint(base.Base):
path = pythonpatch.target_file[2:]
else:
path = pythonpatch.path
(pylint_stdout, pylint_stderr) = lint.py_run(command_options = path + self.pylint_options, return_std=True)
for line in pylint_stdout.readlines():
pylint_output = StringIO()
reporter = TextReporter(pylint_output)
lint.Run([self.pylint_options, pythonpatch.path], reporter=reporter, exit=False)
for line in pylint_output.readlines():
if not '*' in line:
if line.strip():
self.pylint_test[line.strip().split(' ',1)[0]] = line.strip().split(' ',1)[1]