From 32ebb4fa55ae49f28ab7aa175b6519db21d42dbb Mon Sep 17 00:00:00 2001 From: "Eric N. Vander Weele" Date: Tue, 1 Oct 2019 08:48:18 +0200 Subject: [PATCH] application: Pass prelim opts and args to `.make_config_finder()` Now that `.parse_preliminary_options_and_args()` returns options and arguments, the boolean for appending configuration and the arguments can be threaded through to the creation of the `ConfigFileFinder`. --- src/flake8/api/legacy.py | 2 +- src/flake8/main/application.py | 19 ++++++++++++------- tests/unit/test_legacy_api.py | 3 ++- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/flake8/api/legacy.py b/src/flake8/api/legacy.py index 6cff7ad..b680346 100644 --- a/src/flake8/api/legacy.py +++ b/src/flake8/api/legacy.py @@ -32,7 +32,7 @@ def get_style_guide(**kwargs): [] ) flake8.configure_logging(prelim_opts.verbose, prelim_opts.output_file) - application.make_config_finder() + application.make_config_finder(prelim_opts.append_config, prelim_args) application.find_plugins() application.register_plugin_options() application.parse_configuration_and_cli([]) diff --git a/src/flake8/main/application.py b/src/flake8/main/application.py index dc0f237..0eb1abd 100644 --- a/src/flake8/main/application.py +++ b/src/flake8/main/application.py @@ -57,7 +57,7 @@ class Application(object): #: The preliminary arguments parsed from CLI before plugins are loaded self.prelim_args = None # type: List[str] #: The instance of :class:`flake8.options.config.ConfigFileFinder` - self.config_finder = None + self.config_finder = None # type: config.ConfigFileFinder #: The :class:`flake8.options.config.LocalPlugins` found in config self.local_plugins = None # type: config.LocalPlugins @@ -160,13 +160,18 @@ class Application(object): (self.result_count > 0) or self.catastrophic_failure ) - def make_config_finder(self): - """Make our ConfigFileFinder based on preliminary opts and args.""" + def make_config_finder(self, append_config, args): + # type: (List[str], List[str]) -> None + """Make our ConfigFileFinder based on preliminary opts and args. + + :param list append_config: + List of configuration files to be parsed for configuration. + :param list args: + The list of file arguments passed from the CLI. + """ if self.config_finder is None: self.config_finder = config.ConfigFileFinder( - self.option_manager.program_name, - self.prelim_args, - self.prelim_opts.append_config, + self.option_manager.program_name, args, append_config ) def find_plugins(self): @@ -361,7 +366,7 @@ class Application(object): argv ) flake8.configure_logging(prelim_opts.verbose, prelim_opts.output_file) - self.make_config_finder() + self.make_config_finder(prelim_opts.append_config, prelim_args) self.find_plugins() self.register_plugin_options() self.parse_configuration_and_cli(argv) diff --git a/tests/unit/test_legacy_api.py b/tests/unit/test_legacy_api.py index e71d89a..23c975e 100644 --- a/tests/unit/test_legacy_api.py +++ b/tests/unit/test_legacy_api.py @@ -11,6 +11,7 @@ from flake8.formatting import base as formatter def test_get_style_guide(): """Verify the methods called on our internal Application.""" prelim_opts = argparse.Namespace( + append_config=[], output_file=None, verbose=0, ) @@ -26,7 +27,7 @@ def test_get_style_guide(): application.assert_called_once_with() mockedapp.parse_preliminary_options_and_args.assert_called_once_with([]) - mockedapp.make_config_finder.assert_called_once_with() + mockedapp.make_config_finder.assert_called_once_with([], []) mockedapp.find_plugins.assert_called_once_with() mockedapp.register_plugin_options.assert_called_once_with() mockedapp.parse_configuration_and_cli.assert_called_once_with([])