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.addgroup('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
 | 
						|
 | 
						|
 |