summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/flake8/formatting/default.py8
-rw-r--r--tests/unit/test_filenameonly_formatter.py38
-rw-r--r--tests/unit/test_nothing_formatter.py28
3 files changed, 74 insertions, 0 deletions
diff --git a/src/flake8/formatting/default.py b/src/flake8/formatting/default.py
index f8e3a66..8c91f9f 100644
--- a/src/flake8/formatting/default.py
+++ b/src/flake8/formatting/default.py
@@ -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
diff --git a/tests/unit/test_filenameonly_formatter.py b/tests/unit/test_filenameonly_formatter.py
new file mode 100644
index 0000000..caa0ae3
--- /dev/null
+++ b/tests/unit/test_filenameonly_formatter.py
@@ -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
diff --git a/tests/unit/test_nothing_formatter.py b/tests/unit/test_nothing_formatter.py
new file mode 100644
index 0000000..ce8087f
--- /dev/null
+++ b/tests/unit/test_nothing_formatter.py
@@ -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