Browse Source
To avoid that new pylint-related warnings get committed, let's check the files with pylint during each run (similar to what we are doing for the iotests already). Message-Id: <20251119082636.43286-16-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>pull/316/head
3 changed files with 43 additions and 0 deletions
@ -0,0 +1,41 @@ |
|||||
|
#!/usr/bin/env python3 |
||||
|
# |
||||
|
# SPDX-License-Identifier: GPL-2.0-or-later |
||||
|
# |
||||
|
'''Python linter tests''' |
||||
|
|
||||
|
import os |
||||
|
|
||||
|
from pathlib import Path |
||||
|
from qemu_test import QemuBaseTest, skipIfMissingImports |
||||
|
|
||||
|
|
||||
|
class LinterTest(QemuBaseTest): |
||||
|
''' |
||||
|
Run python linters on the test *.py files |
||||
|
''' |
||||
|
|
||||
|
@skipIfMissingImports("pylint") |
||||
|
def test_pylint(self): |
||||
|
'''Check source files with pylint''' |
||||
|
from pylint.lint import Run as pylint_run |
||||
|
from pylint.reporters.collecting_reporter import CollectingReporter |
||||
|
srcdir = os.path.join(Path(__file__).parent.parent, self.arch) |
||||
|
rcfile = os.path.join(Path(__file__).parent.parent, "pylintrc") |
||||
|
self.log.info('Checking files in %s with pylint', srcdir) |
||||
|
reporter = CollectingReporter() |
||||
|
pylint_run(["--rcfile", rcfile, srcdir], reporter=reporter, exit=False) |
||||
|
if reporter.messages: |
||||
|
fmt = '"{path}:{line}: {msg_id}: {msg} ({symbol})"' |
||||
|
for msg in reporter.messages: |
||||
|
if msg.category == "error": |
||||
|
self.log.error(msg.format(fmt)) |
||||
|
elif msg.category == "warning": |
||||
|
self.log.warning(msg.format(fmt)) |
||||
|
else: |
||||
|
self.log.info(msg.format(fmt)) |
||||
|
self.fail("Pylint failed, see base.log for details.") |
||||
|
|
||||
|
|
||||
|
if __name__ == '__main__': |
||||
|
QemuBaseTest.main() |
||||
Loading…
Reference in new issue