summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/flake8/style_guide.py13
-rw-r--r--tests/unit/test_style_guide.py5
2 files changed, 13 insertions, 5 deletions
diff --git a/src/flake8/style_guide.py b/src/flake8/style_guide.py
index fb0df3a..38fc29a 100644
--- a/src/flake8/style_guide.py
+++ b/src/flake8/style_guide.py
@@ -74,6 +74,10 @@ class StyleGuide(object):
reverse=True,
))
self._ignored = tuple(sorted(options.ignore, reverse=True))
+ self._using_default_ignore = set(self._ignored) == set(defaults.IGNORE)
+ self._using_default_select = (
+ set(self._selected) == set(defaults.SELECT)
+ )
self._decision_cache = {}
self._parsed_diff = {}
@@ -135,14 +139,15 @@ class StyleGuide(object):
ignore = find_first_match(code, self._ignored)
if select and ignore:
+ if self._using_default_ignore and not self._using_default_select:
+ return Decision.Selected
return find_more_specific(select, ignore)
if extra_select and ignore:
return find_more_specific(extra_select, ignore)
- if select or (extra_select and self._selected == defaults.SELECT):
+ if select or (extra_select and self._using_default_select):
return Decision.Selected
- if select is None and extra_select is None and ignore is not None:
- return Decision.Ignored
- if self._selected != defaults.SELECT and select is None:
+ if ((select is None and extra_select is None) or
+ (not self._using_default_ignore and select is None)):
return Decision.Ignored
return Decision.Selected
diff --git a/tests/unit/test_style_guide.py b/tests/unit/test_style_guide.py
index 7357b25..10550f8 100644
--- a/tests/unit/test_style_guide.py
+++ b/tests/unit/test_style_guide.py
@@ -125,6 +125,9 @@ def test_is_user_selected_excludes_errors(select_list, error_code):
(['E41'], ['E2', 'E12', 'E4'], 'E410', style_guide.Decision.Selected),
(['E'], ['F'], 'E410', style_guide.Decision.Selected),
(['F'], [], 'E410', style_guide.Decision.Ignored),
+ (['E'], defaults.IGNORE, 'E126', style_guide.Decision.Selected),
+ (['W'], defaults.IGNORE, 'E126', style_guide.Decision.Ignored),
+ (['E'], defaults.IGNORE, 'W391', style_guide.Decision.Ignored),
])
def test_should_report_error(select_list, ignore_list, error_code, expected):
"""Verify we decide when to report an error."""
@@ -141,7 +144,7 @@ def test_should_report_error(select_list, ignore_list, error_code, expected):
(defaults.SELECT, [], ['I1'], [], 'I100',
style_guide.Decision.Selected),
(defaults.SELECT, [], ['I1'], [], 'I201',
- style_guide.Decision.Selected),
+ style_guide.Decision.Ignored),
(defaults.SELECT, ['I2'], ['I1'], [], 'I101',
style_guide.Decision.Selected),
(defaults.SELECT, ['I2'], ['I1'], [], 'I201',