mirror of
https://github.com/PyCQA/flake8.git
synced 2026-03-31 03:06:53 +00:00
Merge branch 'bug/67' into 'master'
Remove enabled extensions from `options.select` When taking advantage of the --select flag for off-by-default extensions, we neglected to take into account the fact that leaving the extension names in the select list would cause different behaviour in pep8. This should remedy this. Related to GitLab bug #67 ---- cc @joe-gordon0 See merge request !37
This commit is contained in:
commit
bf19122741
2 changed files with 39 additions and 1 deletions
|
|
@ -98,6 +98,11 @@ def get_parser():
|
|||
help='Redirect report to a file.',
|
||||
type='string', nargs=1, action='callback',
|
||||
callback=callbacks.redirect_stdout)
|
||||
parser.add_option('--enable-extensions', default='',
|
||||
dest='enabled_extensions',
|
||||
help='Enable plugins and extensions that are disabled '
|
||||
'by default',
|
||||
type='string')
|
||||
parser.ignored_extensions = ignored
|
||||
return parser, options_hooks
|
||||
|
||||
|
|
@ -186,11 +191,32 @@ class StyleGuide(object):
|
|||
)
|
||||
|
||||
|
||||
def _parse_multi_options(options, split_token=','):
|
||||
r"""Split and strip and discard empties.
|
||||
|
||||
Turns the following:
|
||||
|
||||
A,
|
||||
B,
|
||||
|
||||
into ["A", "B"].
|
||||
|
||||
Credit: Kristian Glass as contributed to pep8
|
||||
"""
|
||||
if options:
|
||||
return [o.strip() for o in options.split(split_token) if o.strip()]
|
||||
else:
|
||||
return options
|
||||
|
||||
|
||||
def _disable_extensions(parser, options):
|
||||
ignored_extensions = set(getattr(parser, 'ignored_extensions', []))
|
||||
enabled = set(_parse_multi_options(options.enabled_extensions))
|
||||
|
||||
# Remove any of the selected extensions from the extensions ignored by
|
||||
# default.
|
||||
ignored_extensions -= set(options.select)
|
||||
ignored_extensions -= enabled
|
||||
|
||||
# Whatever is left afterwards should be unioned with options.ignore and
|
||||
# options.ignore should be updated with that.
|
||||
options.ignore = tuple(ignored_extensions.union(options.ignore))
|
||||
|
|
|
|||
|
|
@ -56,6 +56,18 @@ class TestEngine(unittest.TestCase):
|
|||
self.assertTrue(isinstance(i, list))
|
||||
self.assertTrue(register_check.called)
|
||||
|
||||
def test_disable_extensions(self):
|
||||
parser = mock.MagicMock()
|
||||
options = mock.MagicMock()
|
||||
|
||||
parser.ignored_extensions = ['I123', 'I345', 'I678', 'I910']
|
||||
|
||||
options.enabled_extensions = 'I345,\nI678,I910'
|
||||
options.ignore = ('E121', 'E123')
|
||||
|
||||
engine._disable_extensions(parser, options)
|
||||
self.assertEqual(set(options.ignore), set(['E121', 'E123', 'I123']))
|
||||
|
||||
def test_get_parser(self):
|
||||
# setup
|
||||
re = self.start_patch('flake8.engine._register_extensions')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue