From f67552d09ae555bdd69c7cad09b3b03fdc03c131 Mon Sep 17 00:00:00 2001 From: geonu Date: Fri, 2 Oct 2015 21:04:11 +0900 Subject: [PATCH 1/6] Add option_normalizer for setuptools --- flake8/util.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/flake8/util.py b/flake8/util.py index fda6331..e4f3a01 100644 --- a/flake8/util.py +++ b/flake8/util.py @@ -66,3 +66,15 @@ def force_disable_jobs(styleguide): 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 From 28138a213569a2078dcecac0cd0626efd9be64d3 Mon Sep 17 00:00:00 2001 From: geonu Date: Fri, 2 Oct 2015 21:05:06 +0900 Subject: [PATCH 2/6] Use option_normalizer --- flake8/main.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/flake8/main.py b/flake8/main.py index e1d65c5..3bc7b71 100644 --- a/flake8/main.py +++ b/flake8/main.py @@ -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 is_flag, flag_on, 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) From 0d006a35212ac0f8f828fc802c313d010618fc4e Mon Sep 17 00:00:00 2001 From: geonu Date: Fri, 2 Oct 2015 21:05:31 +0900 Subject: [PATCH 3/6] Delete unused import --- flake8/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake8/main.py b/flake8/main.py index 3bc7b71..297618a 100644 --- a/flake8/main.py +++ b/flake8/main.py @@ -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, option_normalizer +from flake8.util import option_normalizer if sys.platform.startswith('win'): DEFAULT_CONFIG = os.path.expanduser(r'~\.flake8') From 186f41edcb61cb40ee8f19877a37320a45fcf475 Mon Sep 17 00:00:00 2001 From: geonu Date: Fri, 2 Oct 2015 21:05:55 +0900 Subject: [PATCH 4/6] Delete unnecessary function --- flake8/util.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/flake8/util.py b/flake8/util.py index e4f3a01..da33f42 100644 --- a/flake8/util.py +++ b/flake8/util.py @@ -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,11 +57,6 @@ 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 From 0cc12e22ae364446314c8e86e437fad3ed2433dd Mon Sep 17 00:00:00 2001 From: geonu Date: Sat, 3 Oct 2015 20:44:25 +0900 Subject: [PATCH 5/6] Add option_normalizer test code --- flake8/tests/test_util.py | 77 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 flake8/tests/test_util.py diff --git a/flake8/tests/test_util.py b/flake8/tests/test_util.py new file mode 100644 index 0000000..879056e --- /dev/null +++ b/flake8/tests/test_util.py @@ -0,0 +1,77 @@ +import unittest +try: + from unittest import mock +except ImportError: + import mock # < PY33 + +from flake8.util import option_normalizer + +class TestOptionSerializer(unittest.TestCase): + + def test_true(self): + option = option_normalizer('1') + self.assertEqual(option, True) + + option = option_normalizer('T') + self.assertEqual(option, True) + + option = option_normalizer('TRUE') + self.assertEqual(option, True) + + option = option_normalizer('ON') + self.assertEqual(option, True) + + option = option_normalizer('t') + self.assertEqual(option, True) + + option = option_normalizer('true') + self.assertEqual(option, True) + + option = option_normalizer('on') + self.assertEqual(option, True) + + def test_false(self): + option = option_normalizer('0') + self.assertEqual(option, False) + + option = option_normalizer('F') + self.assertEqual(option, False) + + option = option_normalizer('FALSE') + self.assertEqual(option, False) + + option = option_normalizer('OFF') + self.assertEqual(option, False) + + option = option_normalizer('f') + self.assertEqual(option, False) + + option = option_normalizer('false') + self.assertEqual(option, False) + + option = option_normalizer('off') + self.assertEqual(option, False) + + def test_multiple_option(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() From d42232554895b473a612e72cc11b68720f672bf2 Mon Sep 17 00:00:00 2001 From: Ian Cordasco Date: Wed, 7 Oct 2015 22:09:04 -0500 Subject: [PATCH 6/6] Rewrite some tests from !41 --- flake8/tests/test_util.py | 51 +++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/flake8/tests/test_util.py b/flake8/tests/test_util.py index 879056e..32a1d44 100644 --- a/flake8/tests/test_util.py +++ b/flake8/tests/test_util.py @@ -1,58 +1,67 @@ import unittest -try: - from unittest import mock -except ImportError: - import mock # < PY33 from flake8.util import option_normalizer + class TestOptionSerializer(unittest.TestCase): - def test_true(self): + def test_1_is_true(self): option = option_normalizer('1') - self.assertEqual(option, True) + self.assertTrue(option) + def test_T_is_true(self): option = option_normalizer('T') - self.assertEqual(option, True) + self.assertTrue(option) + def test_TRUE_is_true(self): option = option_normalizer('TRUE') - self.assertEqual(option, True) + self.assertTrue(option, True) + def test_ON_is_true(self): option = option_normalizer('ON') - self.assertEqual(option, True) + self.assertTrue(option) + def test_t_is_true(self): option = option_normalizer('t') - self.assertEqual(option, True) + self.assertTrue(option) + def test_true_is_true(self): option = option_normalizer('true') - self.assertEqual(option, True) + self.assertTrue(option) + def test_on_is_true(self): option = option_normalizer('on') - self.assertEqual(option, True) + self.assertTrue(option) - def test_false(self): + def test_0_is_false(self): option = option_normalizer('0') - self.assertEqual(option, False) + self.assertFalse(option) + def test_F_is_false(self): option = option_normalizer('F') - self.assertEqual(option, False) + self.assertFalse(option) + def test_FALSE_is_false(self): option = option_normalizer('FALSE') - self.assertEqual(option, False) + self.assertFalse(option) + def test_OFF_is_false(self): option = option_normalizer('OFF') - self.assertEqual(option, False) + self.assertFalse(option) + def test_f_is_false(self): option = option_normalizer('f') - self.assertEqual(option, False) + self.assertFalse(option) + def test_false_is_false(self): option = option_normalizer('false') - self.assertEqual(option, False) + self.assertFalse(option) + def test_off_is_false(self): option = option_normalizer('off') - self.assertEqual(option, False) + self.assertFalse(option) - def test_multiple_option(self): + def test_parses_lists(self): answer = ['F401', 'F402', 'F403', 'F404'] option = option_normalizer('F401,F402,F403,F404')