Fix call to flake8 broken when using distro module during test-tidy

This commit is contained in:
marmeladema 2019-10-20 22:29:50 +01:00
parent 4d6f28df35
commit ff50cdb183

View file

@ -9,14 +9,12 @@
from __future__ import print_function
import contextlib
import fnmatch
import imp
import itertools
import json
import os
import re
from io import StringIO
import subprocess
import sys
@ -327,28 +325,21 @@ def check_by_line(file_name, lines):
def check_flake8(file_name, contents):
from flake8.main import check_code
if not file_name.endswith(".py"):
raise StopIteration
@contextlib.contextmanager
def stdout_redirect(where):
sys.stdout = where
try:
yield where
finally:
sys.stdout = sys.__stdout__
ignore = {
"W291", # trailing whitespace; the standard tidy process will enforce no trailing whitespace
"E501", # 80 character line length; the standard tidy process will enforce line length
}
output = StringIO()
with stdout_redirect(output):
check_code(contents, ignore=ignore)
for error in output.getvalue().splitlines():
output = ""
try:
args = ["flake8", "--ignore=" + ",".join(ignore), file_name]
subprocess.check_output(args)
except subprocess.CalledProcessError as e:
output = e.output
for error in output.splitlines():
_, line_num, _, message = error.split(":", 3)
yield line_num, message.strip()