37 lines
989 B
Python
37 lines
989 B
Python
|
"""pylint plugin
|
||
|
|
||
|
XXX: Currently in progress, NOT IN WORKING STATE.
|
||
|
"""
|
||
|
import py
|
||
|
|
||
|
pylint = py.test.importorskip("pylint.lint")
|
||
|
|
||
|
def pytest_addoption(parser):
|
||
|
group = parser.getgroup('pylint options')
|
||
|
group.addoption('--pylint', action='store_true',
|
||
|
default=False, dest='pylint',
|
||
|
help='run pylint on python files.')
|
||
|
|
||
|
def pytest_collect_file(path, parent):
|
||
|
if path.ext == ".py":
|
||
|
if parent.config.getvalue('pylint'):
|
||
|
return PylintItem(path, parent)
|
||
|
|
||
|
#def pytest_terminal_summary(terminalreporter):
|
||
|
# print 'placeholder for pylint output'
|
||
|
|
||
|
class PylintItem(py.test.collect.Item):
|
||
|
def runtest(self):
|
||
|
capture = py.io.StdCaptureFD()
|
||
|
try:
|
||
|
linter = pylint.lint.PyLinter()
|
||
|
linter.check(str(self.fspath))
|
||
|
finally:
|
||
|
out, err = capture.reset()
|
||
|
rating = out.strip().split('\n')[-1]
|
||
|
sys.stdout.write(">>>")
|
||
|
print(rating)
|
||
|
assert 0
|
||
|
|
||
|
|