summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Sottile <asottile@umich.edu>2019-11-06 04:35:22 +0000
committerAnthony Sottile <asottile@umich.edu>2019-11-06 04:35:22 +0000
commite653ab80627dea38e785ea059b6fe42595a4ce81 (patch)
tree3a85b52e0451d2b179b7a3a6271dc58ac6ad7f3e
parent034f8823bc8bf853b8f75ada9bc39230c6fe49a7 (diff)
parentd75088b199d92f12c1881b871d826c4de8734ae0 (diff)
downloadflake8-e653ab80627dea38e785ea059b6fe42595a4ce81.tar.gz
Merge branch 'app-make-config-side-effect-free' into 'master'
application: Change `make_config_finder` to be a pure static method See merge request pycqa/flake8!378
-rw-r--r--src/flake8/api/legacy.py4
-rw-r--r--src/flake8/main/application.py19
-rw-r--r--tests/unit/test_legacy_api.py3
3 files changed, 18 insertions, 8 deletions
diff --git a/src/flake8/api/legacy.py b/src/flake8/api/legacy.py
index 6fa13b4..b8c69c5 100644
--- a/src/flake8/api/legacy.py
+++ b/src/flake8/api/legacy.py
@@ -30,7 +30,9 @@ def get_style_guide(**kwargs):
application = app.Application()
prelim_opts, remaining_args = application.parse_preliminary_options([])
flake8.configure_logging(prelim_opts.verbose, prelim_opts.output_file)
- application.make_config_finder(prelim_opts.append_config)
+ application.config_finder = application.make_config_finder(
+ application.program, prelim_opts.append_config
+ )
application.find_plugins(prelim_opts.config, prelim_opts.isolated)
application.register_plugin_options()
application.parse_configuration_and_cli(remaining_args)
diff --git a/src/flake8/main/application.py b/src/flake8/main/application.py
index 40e196c..a317144 100644
--- a/src/flake8/main/application.py
+++ b/src/flake8/main/application.py
@@ -133,17 +133,22 @@ class Application(object):
(self.result_count > 0) or self.catastrophic_failure
)
- def make_config_finder(self, extra_config_files):
- # type: (List[str]) -> None
+ @staticmethod
+ def make_config_finder(program_name, extra_config_files):
+ # type: (str, List[str]) -> config.ConfigFileFinder
"""Make our ConfigFileFinder based on preliminary options.
+ :param str program_name:
+ Name of the current programin (e.g., flake8).
:param list extra_config_files:
List of addtional configuration files to be parsed for
configuration.
+ :returns:
+ The configuration file finder
+ :rtype:
+ config.ConfigFileFinder
"""
- self.config_finder = config.ConfigFileFinder(
- self.program, extra_config_files
- )
+ return config.ConfigFileFinder(program_name, extra_config_files)
def find_plugins(self, config_file, ignore_config_files):
# type: (Optional[str], bool) -> None
@@ -333,7 +338,9 @@ class Application(object):
# our legacy API calls to these same methods.
prelim_opts, remaining_args = self.parse_preliminary_options(argv)
flake8.configure_logging(prelim_opts.verbose, prelim_opts.output_file)
- self.make_config_finder(prelim_opts.append_config)
+ self.config_finder = self.make_config_finder(
+ self.program, prelim_opts.append_config
+ )
self.find_plugins(prelim_opts.config, prelim_opts.isolated)
self.register_plugin_options()
self.parse_configuration_and_cli(remaining_args)
diff --git a/tests/unit/test_legacy_api.py b/tests/unit/test_legacy_api.py
index 071bcf3..77d9020 100644
--- a/tests/unit/test_legacy_api.py
+++ b/tests/unit/test_legacy_api.py
@@ -19,13 +19,14 @@ def test_get_style_guide():
)
mockedapp = mock.Mock()
mockedapp.parse_preliminary_options.return_value = (prelim_opts, [])
+ mockedapp.program = 'flake8'
with mock.patch('flake8.main.application.Application') as application:
application.return_value = mockedapp
style_guide = api.get_style_guide()
application.assert_called_once_with()
mockedapp.parse_preliminary_options.assert_called_once_with([])
- mockedapp.make_config_finder.assert_called_once_with([])
+ mockedapp.make_config_finder.assert_called_once_with(mockedapp.program, [])
mockedapp.find_plugins.assert_called_once_with(None, False)
mockedapp.register_plugin_options.assert_called_once_with()
mockedapp.parse_configuration_and_cli.assert_called_once_with([])