From 98b9946a7893824779d87120d5c13ea2eace72c8 Mon Sep 17 00:00:00 2001 From: Shinya Kawaguchi Date: Sat, 22 Jul 2017 16:06:47 +0900 Subject: [PATCH 1/2] Reproduce quiet/verbose config problem --- tests/fixtures/config_files/cli-specified.ini | 2 ++ tests/unit/test_merged_config_parser.py | 24 ++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/tests/fixtures/config_files/cli-specified.ini b/tests/fixtures/config_files/cli-specified.ini index 753604a..c67e1e9 100644 --- a/tests/fixtures/config_files/cli-specified.ini +++ b/tests/fixtures/config_files/cli-specified.ini @@ -7,3 +7,5 @@ exclude = foo/, bar/, bogus/ +verbose = 2 +quiet = 1 diff --git a/tests/unit/test_merged_config_parser.py b/tests/unit/test_merged_config_parser.py index 1541df4..1bc2bbe 100644 --- a/tests/unit/test_merged_config_parser.py +++ b/tests/unit/test_merged_config_parser.py @@ -47,6 +47,10 @@ def test_parse_cli_config(optmanager): normalize_paths=True) optmanager.add_option('--ignore', parse_from_config=True, comma_separated_list=True) + optmanager.add_option('--verbose', parse_from_config=True, + action='count') + optmanager.add_option('--quiet', parse_from_config=True, + action='count') parser = config.MergedConfigParser(optmanager) parsed_config = parser.parse_cli_config( @@ -58,7 +62,9 @@ def test_parse_cli_config(optmanager): os.path.abspath('foo/'), os.path.abspath('bar/'), os.path.abspath('bogus/'), - ] + ], + 'verbose': 2, + 'quiet': 1, } @@ -81,6 +87,10 @@ def test_parse_user_config(optmanager): normalize_paths=True) optmanager.add_option('--ignore', parse_from_config=True, comma_separated_list=True) + optmanager.add_option('--verbose', parse_from_config=True, + action='count') + optmanager.add_option('--quiet', parse_from_config=True, + action='count') parser = config.MergedConfigParser(optmanager) with mock.patch.object(parser.config_finder, 'user_config_file') as usercf: @@ -93,7 +103,9 @@ def test_parse_user_config(optmanager): os.path.abspath('foo/'), os.path.abspath('bar/'), os.path.abspath('bogus/'), - ] + ], + 'verbose': 2, + 'quiet': 1, } @@ -104,6 +116,10 @@ def test_parse_local_config(optmanager): normalize_paths=True) optmanager.add_option('--ignore', parse_from_config=True, comma_separated_list=True) + optmanager.add_option('--verbose', parse_from_config=True, + action='count') + optmanager.add_option('--quiet', parse_from_config=True, + action='count') parser = config.MergedConfigParser(optmanager) config_finder = parser.config_finder @@ -119,7 +135,9 @@ def test_parse_local_config(optmanager): os.path.abspath('foo/'), os.path.abspath('bar/'), os.path.abspath('bogus/'), - ] + ], + 'verbose': 2, + 'quiet': 1, } From 55e85b4b50a1d3ee89a2f803f33e2efdd677f4f8 Mon Sep 17 00:00:00 2001 From: Shinya Kawaguchi Date: Sat, 22 Jul 2017 16:21:32 +0900 Subject: [PATCH 2/2] Fix quiet/verbose config problem --- src/flake8/options/config.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/flake8/options/config.py b/src/flake8/options/config.py index 59bf60f..a6ac63f 100644 --- a/src/flake8/options/config.py +++ b/src/flake8/options/config.py @@ -183,7 +183,8 @@ class MergedConfigParser(object): # Use the appropriate method to parse the config value method = config_parser.get - if option.type in self.GETINT_TYPES: + if (option.type in self.GETINT_TYPES or + option.action in self.GETINT_TYPES): method = config_parser.getint elif option.action in self.GETBOOL_ACTIONS: method = config_parser.getboolean