Fix bug with --enable-extensions

We went through an iteration where we supported --enable-extensions and
then didn't. This adds back our support for --enable-extensions.

Closes #239
This commit is contained in:
Ian Cordasco 2016-10-25 19:28:52 -05:00
parent 5f3577fca8
commit 68a273144e
No known key found for this signature in database
GPG key ID: 656D3395E4A9791A
2 changed files with 20 additions and 12 deletions

View file

@ -65,6 +65,7 @@ class StyleGuide(object):
self._selected = tuple(options.select) self._selected = tuple(options.select)
self._extended_selected = tuple(options.extended_default_select) self._extended_selected = tuple(options.extended_default_select)
self._ignored = tuple(options.ignore) self._ignored = tuple(options.ignore)
self._enabled_extensions = tuple(options.enable_extensions)
self._decision_cache = {} self._decision_cache = {}
self._parsed_diff = {} self._parsed_diff = {}
@ -81,10 +82,10 @@ class StyleGuide(object):
Ignored.Implicitly if the selected list is not empty but no match Ignored.Implicitly if the selected list is not empty but no match
was found. was found.
""" """
if not self._selected: if not (self._selected or self._enabled_extensions):
return Selected.Implicitly return Selected.Implicitly
if code.startswith(self._selected): if code.startswith(self._selected + self._enabled_extensions):
return Selected.Explicitly return Selected.Explicitly
# If it was not explicitly selected, it may have been implicitly # If it was not explicitly selected, it may have been implicitly

View file

@ -15,6 +15,7 @@ def create_options(**kwargs):
kwargs.setdefault('extended_default_select', []) kwargs.setdefault('extended_default_select', [])
kwargs.setdefault('ignore', []) kwargs.setdefault('ignore', [])
kwargs.setdefault('disable_noqa', False) kwargs.setdefault('disable_noqa', False)
kwargs.setdefault('enable_extensions', [])
return optparse.Values(kwargs) return optparse.Values(kwargs)
@ -50,18 +51,24 @@ def test_is_user_ignored_implicitly_selects_errors(ignore_list, error_code):
assert guide.is_user_ignored(error_code) is style_guide.Selected.Implicitly assert guide.is_user_ignored(error_code) is style_guide.Selected.Implicitly
@pytest.mark.parametrize('select_list,error_code', [ @pytest.mark.parametrize('select_list,enable_extensions,error_code', [
(['E111', 'E121'], 'E111'), (['E111', 'E121'], [], 'E111'),
(['E111', 'E121'], 'E121'), (['E111', 'E121'], [], 'E121'),
(['E11', 'E12'], 'E121'), (['E11', 'E12'], [], 'E121'),
(['E2', 'E12'], 'E121'), (['E2', 'E12'], [], 'E121'),
(['E2', 'E12'], 'E211'), (['E2', 'E12'], [], 'E211'),
(['E1'], ['E2'], 'E211'),
([], ['E2'], 'E211'),
]) ])
def test_is_user_selected_selects_errors(select_list, error_code): def test_is_user_selected_selects_errors(select_list, enable_extensions,
error_code):
"""Verify we detect users explicitly selecting an error.""" """Verify we detect users explicitly selecting an error."""
guide = style_guide.StyleGuide(create_options(select=select_list), guide = style_guide.StyleGuide(
listener_trie=None, options=create_options(select=select_list,
formatter=None) enable_extensions=enable_extensions),
listener_trie=None,
formatter=None,
)
assert (guide.is_user_selected(error_code) is assert (guide.is_user_selected(error_code) is
style_guide.Selected.Explicitly) style_guide.Selected.Explicitly)