Merge branch 'GeonU/flake8-bug-setuptools-options'

This commit is contained in:
Ian Cordasco 2015-10-07 22:09:20 -05:00
commit ac87e2d71e
3 changed files with 98 additions and 12 deletions

View file

@ -6,7 +6,7 @@ import sys
import setuptools
from flake8.engine import get_parser, get_style_guide
from flake8.util import is_flag, flag_on
from flake8.util import option_normalizer
if sys.platform.startswith('win'):
DEFAULT_CONFIG = os.path.expanduser(r'~\.flake8')
@ -104,8 +104,7 @@ class Flake8Command(setuptools.Command):
value = getattr(self, option_name)
if value is None:
continue
if is_flag(value):
value = flag_on(value)
value = option_normalizer(value)
# Check if there's any values that need to be fixed.
if option_name == "include" and isinstance(value, str):
value = re.findall('[^,;\s]+', value)

86
flake8/tests/test_util.py Normal file
View file

@ -0,0 +1,86 @@
import unittest
from flake8.util import option_normalizer
class TestOptionSerializer(unittest.TestCase):
def test_1_is_true(self):
option = option_normalizer('1')
self.assertTrue(option)
def test_T_is_true(self):
option = option_normalizer('T')
self.assertTrue(option)
def test_TRUE_is_true(self):
option = option_normalizer('TRUE')
self.assertTrue(option, True)
def test_ON_is_true(self):
option = option_normalizer('ON')
self.assertTrue(option)
def test_t_is_true(self):
option = option_normalizer('t')
self.assertTrue(option)
def test_true_is_true(self):
option = option_normalizer('true')
self.assertTrue(option)
def test_on_is_true(self):
option = option_normalizer('on')
self.assertTrue(option)
def test_0_is_false(self):
option = option_normalizer('0')
self.assertFalse(option)
def test_F_is_false(self):
option = option_normalizer('F')
self.assertFalse(option)
def test_FALSE_is_false(self):
option = option_normalizer('FALSE')
self.assertFalse(option)
def test_OFF_is_false(self):
option = option_normalizer('OFF')
self.assertFalse(option)
def test_f_is_false(self):
option = option_normalizer('f')
self.assertFalse(option)
def test_false_is_false(self):
option = option_normalizer('false')
self.assertFalse(option)
def test_off_is_false(self):
option = option_normalizer('off')
self.assertFalse(option)
def test_parses_lists(self):
answer = ['F401', 'F402', 'F403', 'F404']
option = option_normalizer('F401,F402,F403,F404')
self.assertEqual(option, answer)
option = option_normalizer('F401 ,F402 ,F403 ,F404')
self.assertEqual(option, answer)
option = option_normalizer('F401, F402, F403, F404')
self.assertEqual(option, answer)
option = option_normalizer('''\
F401,
F402,
F403,
F404,
''')
self.assertEqual(option, answer)
if __name__ == '__main__':
unittest.main()

View file

@ -38,12 +38,6 @@ class OrderedSet(list):
self.append(value)
def is_flag(val):
"""Guess if the value could be an on/off toggle"""
val = str(val)
return val.upper() in ('1', '0', 'F', 'T', 'TRUE', 'FALSE', 'ON', 'OFF')
def is_windows():
"""Determine if the system is Windows."""
return os.name == 'nt'
@ -63,6 +57,13 @@ def force_disable_jobs(styleguide):
return is_windows() or is_using_stdin(styleguide.paths)
def flag_on(val):
"""Return true if flag is on"""
return str(val).upper() in ('1', 'T', 'TRUE', 'ON')
def option_normalizer(value):
if str(value).upper() in ('1', 'T', 'TRUE', 'ON'):
value = True
if str(value).upper() in ('0', 'F', 'FALSE', 'OFF'):
value = False
if isinstance(value, str):
value = [opt.strip() for opt in value.split(',') if opt.strip()]
return value