Merge branch 'bug/245' into 'master'

Do not print the source when provided with -q

When users specify any number of -q's on the command-line, we should not
show the source even if they have otherwwise configured Flake8 to do so.

Closes #245

See merge request !140
This commit is contained in:
Ian Cordasco 2016-11-12 01:10:36 +00:00
commit 72eecbddcd
3 changed files with 74 additions and 0 deletions

View file

@ -65,6 +65,10 @@ class FilenameOnly(SimpleFormatter):
"""Initialize our set of filenames."""
self.filenames_already_printed = set()
def show_source(self, error):
"""Do not include the source code."""
pass
def format(self, error):
"""Ensure we only print each error once."""
if error.filename not in self.filenames_already_printed:
@ -78,3 +82,7 @@ class Nothing(base.BaseFormatter):
def format(self, error):
"""Do nothing."""
pass
def show_source(self, error):
"""Do not print the source."""
pass

View file

@ -0,0 +1,38 @@
"""Tests for the FilenameOnly formatter object."""
import optparse
from flake8 import style_guide
from flake8.formatting import default
def options(**kwargs):
"""Create an optparse.Values instance."""
kwargs.setdefault('output_file', None)
kwargs.setdefault('tee', False)
return optparse.Values(kwargs)
def test_caches_filenames_already_printed():
"""Verify we cache filenames when we format them."""
formatter = default.FilenameOnly(options())
assert formatter.filenames_already_printed == set()
formatter.format(style_guide.Error('code', 'file.py', 1, 1, 'text', 'l'))
assert formatter.filenames_already_printed == {'file.py'}
def test_only_returns_a_string_once_from_format():
"""Verify format ignores the second error with the same filename."""
formatter = default.FilenameOnly(options())
error = style_guide.Error('code', 'file.py', 1, 1, 'text', '1')
assert formatter.format(error) == 'file.py'
assert formatter.format(error) is None
def test_show_source_returns_nothing():
"""Verify show_source returns nothing."""
formatter = default.FilenameOnly(options())
error = style_guide.Error('code', 'file.py', 1, 1, 'text', '1')
assert formatter.show_source(error) is None

View file

@ -0,0 +1,28 @@
"""Tests for the Nothing formatter obbject."""
import optparse
from flake8 import style_guide
from flake8.formatting import default
def options(**kwargs):
"""Create an optparse.Values instance."""
kwargs.setdefault('output_file', None)
kwargs.setdefault('tee', False)
return optparse.Values(kwargs)
def test_format_returns_nothing():
"""Verify Nothing.format returns None."""
formatter = default.Nothing(options())
error = style_guide.Error('code', 'file.py', 1, 1, 'text', '1')
assert formatter.format(error) is None
def test_show_source_returns_nothing():
"""Verify Nothing.show_source returns None."""
formatter = default.Nothing(options())
error = style_guide.Error('code', 'file.py', 1, 1, 'text', '1')
assert formatter.show_source(error) is None