def main(): ''' Parse options and run lint8 checks on Python source. ''' parser = ArgumentParser(description='') parser.add_argument('--ignore', default='', help='skip messages of specified types (e.g. ' 'L003,E201,F100)') parser.add_argument('--exclude', default='', help='exclude files matching patterns (e.g. ' 'some_file,bad_.+)') parser.add_argument('--web', '-w', default=False, action='store_true', help='enable web-centric checks, no prints, ' 'good logging practices, ...') parser.add_argument('paths', nargs='+') args = parser.parse_args() ignores = args.ignore.split(',') if args.ignore else [] excludes = args.exclude.split(',') if args.exclude else [] checker = Checker(ignores=ignores, web=args.web) count = checker.process(args.paths, excludes) for message in checker.messages: print(message, file=stderr) exit(count)
def test_utf8(self): checker = Checker() self.assertEquals(0, checker.process([join(FILES_DIR, 'utf-8', 'first.py')])) self.assertEquals(0, checker.process([join(FILES_DIR, 'utf-8', 'second.py')]))
def test_utf8(self): checker = Checker() self.assertEquals( 0, checker.process([join(FILES_DIR, 'utf-8', 'first.py')])) self.assertEquals( 0, checker.process([join(FILES_DIR, 'utf-8', 'second.py')]))
def test_checker_blowup(self): checker = Checker() class Blowup: def check(self, *args, **kwargs): raise Exception('boom') checker.checkers = [Blowup()] with self.assertRaises(Exception) as cm: checker.process([join(FILES_DIR, 'bad', 'simple.py')]) self.assertEquals('boom', str(cm.exception))
def test_web(self): checker = Checker(web=True) self.assertEquals(11, checker.process([join(FILES_DIR, 'bad', 'simple.py')])) self.assertEquals(14, checker.process([join(FILES_DIR, 'bad', 'other.py')])) self.assertEquals(4, checker.process([join(FILES_DIR, 'bad', 'exceptions.py')])) self.assertEquals(29, checker.process([join(FILES_DIR, 'bad')]))
def test_clean(self): checker = Checker() self.assertEquals(0, checker.process([join(FILES_DIR, 'clean', 'simple.py')])) self.assertEquals(0, checker.process([join(FILES_DIR, 'clean', 'other.py')])) self.assertEquals(0, checker.process([join(FILES_DIR, 'clean', 'exceptions.py')])) self.assertEquals(0, checker.process([join(FILES_DIR, 'clean')]))
def test_bad(self): checker = Checker() checker.process([join(FILES_DIR, 'bad', 'simple.py')]) self.assertEquals( 10, checker.process([join(FILES_DIR, 'bad', 'simple.py')])) self.assertEquals( 11, checker.process([join(FILES_DIR, 'bad', 'other.py')])) self.assertEquals( 4, checker.process([join(FILES_DIR, 'bad', 'exceptions.py')])) self.assertEquals(25, checker.process([join(FILES_DIR, 'bad')]))
def test_ignore(self): checker = Checker(ignores=['W291']) self.assertEquals(9, checker.process([join(FILES_DIR, 'bad', 'simple.py')])) checker = Checker(ignores=['W291', 'L001']) self.assertEquals(8, checker.process([join(FILES_DIR, 'bad', 'simple.py')])) checker = Checker(ignores=['W291', 'L001', 'F001']) self.assertEquals(7, checker.process([join(FILES_DIR, 'bad', 'simple.py')])) # ignore unknown pyflakes msg checker = Checker(ignores=['W291', 'L001', 'F001', 'F999']) self.assertEquals(7, checker.process([join(FILES_DIR, 'bad', 'simple.py')]))
def test_bad(self): checker = Checker() checker.process([join(FILES_DIR, 'bad', 'simple.py')]) self.assertEquals(10, checker.process([join(FILES_DIR, 'bad', 'simple.py')])) self.assertEquals(11, checker.process([join(FILES_DIR, 'bad', 'other.py')])) self.assertEquals(4, checker.process([join(FILES_DIR, 'bad', 'exceptions.py')])) self.assertEquals(25, checker.process([join(FILES_DIR, 'bad')]))
def test_web(self): checker = Checker(web=True) self.assertEquals( 11, checker.process([join(FILES_DIR, 'bad', 'simple.py')])) self.assertEquals( 14, checker.process([join(FILES_DIR, 'bad', 'other.py')])) self.assertEquals( 4, checker.process([join(FILES_DIR, 'bad', 'exceptions.py')])) self.assertEquals(29, checker.process([join(FILES_DIR, 'bad')]))
def test_clean(self): checker = Checker() self.assertEquals( 0, checker.process([join(FILES_DIR, 'clean', 'simple.py')])) self.assertEquals( 0, checker.process([join(FILES_DIR, 'clean', 'other.py')])) self.assertEquals( 0, checker.process([join(FILES_DIR, 'clean', 'exceptions.py')])) self.assertEquals(0, checker.process([join(FILES_DIR, 'clean')]))
def test_nonexistent_file(self): checker = Checker() with self.assertRaises(IOError): checker.process([join('some', 'path', 'to', 'nowhere')])
def test_ignore(self): checker = Checker(ignores=['W291']) self.assertEquals( 9, checker.process([join(FILES_DIR, 'bad', 'simple.py')])) checker = Checker(ignores=['W291', 'L001']) self.assertEquals( 8, checker.process([join(FILES_DIR, 'bad', 'simple.py')])) checker = Checker(ignores=['W291', 'L001', 'F001']) self.assertEquals( 7, checker.process([join(FILES_DIR, 'bad', 'simple.py')])) # ignore unknown pyflakes msg checker = Checker(ignores=['W291', 'L001', 'F001', 'F999']) self.assertEquals( 7, checker.process([join(FILES_DIR, 'bad', 'simple.py')]))