-
- pep8_ignore = [
- 'E401', # multiple imports on one line
- 'E501', # line too long
- 'E251', # no spaces around keyword / parameter equals
- 'E201', # whitespace after '['
- 'E202', # whitespace before ')'
- 'E302', # expected 2 blank lines, found 1
- 'E231', # missing whitespace after ','
- 'E225', # missing whitespace around operator
- 'E111', # indentation is not a multiple of four
- 'E261', # at least two spaces before inline comment
- 'E702', # multiple statements on one line (semicolon)
- 'E221', # multiple spaces before operator
- 'E303', # too many blank lines (2)
- 'E203', # whitespace before ':'
- 'E222', # multiple spaces after operator
- 'E301', # expected 1 blank line, found 0
- ]
-
- def test_pep8(self):
- pep8.process_options()
- pep8_errors = []
- pep8_error_count = {}
- pep8_warnings = []
- for fname, text in get_source_file_contents():
- def report_error(line_number, offset, text, check):
- code = text[:4]
- if code not in pep8_error_count:
- pep8_error_count[code] = 0
- pep8_error_count[code] += 1
- if code in self.pep8_ignore:
- code = 'W' + code[1:]
- text = code + text[4:]
- print "%s:%s: %s" % (fname, line_number, text)
- summary = (fname, line_number, offset, text, check)
- if code[0] == 'W':
- pep8_warnings.append(summary)
- else:
- pep8_errors.append(summary)
- lines = text.splitlines(True)
- checker = pep8.Checker(fname, lines)
- checker.report_error = report_error
- checker.check_all()
- if len(pep8_errors) > 0:
- d = {}
- for (fname, line_no, offset, text, check) in pep8_errors:
- d.setdefault(fname, []).append(line_no - 1)
- self.fail(self._format_message(
- d, 'There were %d PEP8 errors:' % len(pep8_errors)))