From 55ef2c6f5eae1617dcbbb51636e9280aa8870e02 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 returned prelim options to `.configure_logging()` The verbosity and output file options can be obtained from options returned by `.parse_preliminary_options_and_args()`, instead of state from the `Application` object. --- src/flake8/api/legacy.py | 6 +++--- src/flake8/main/application.py | 6 +++--- tests/unit/test_legacy_api.py | 13 +++++++++++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/flake8/api/legacy.py b/src/flake8/api/legacy.py index 16a33f4..6cff7ad 100644 --- a/src/flake8/api/legacy.py +++ b/src/flake8/api/legacy.py @@ -28,10 +28,10 @@ def get_style_guide(**kwargs): :class:`StyleGuide` """ application = app.Application() - application.parse_preliminary_options_and_args([]) - flake8.configure_logging( - application.prelim_opts.verbose, application.prelim_opts.output_file + prelim_opts, prelim_args = application.parse_preliminary_options_and_args( + [] ) + flake8.configure_logging(prelim_opts.verbose, prelim_opts.output_file) application.make_config_finder() application.find_plugins() application.register_plugin_options() diff --git a/src/flake8/main/application.py b/src/flake8/main/application.py index 65a17d5..dc0f237 100644 --- a/src/flake8/main/application.py +++ b/src/flake8/main/application.py @@ -357,10 +357,10 @@ class Application(object): """ # NOTE(sigmavirus24): When updating this, make sure you also update # our legacy API calls to these same methods. - self.parse_preliminary_options_and_args(argv) - flake8.configure_logging( - self.prelim_opts.verbose, self.prelim_opts.output_file + prelim_opts, prelim_args = self.parse_preliminary_options_and_args( + argv ) + flake8.configure_logging(prelim_opts.verbose, prelim_opts.output_file) self.make_config_finder() self.find_plugins() self.register_plugin_options() diff --git a/tests/unit/test_legacy_api.py b/tests/unit/test_legacy_api.py index 1d6a3e2..e71d89a 100644 --- a/tests/unit/test_legacy_api.py +++ b/tests/unit/test_legacy_api.py @@ -1,4 +1,6 @@ """Tests for Flake8's legacy API.""" +import argparse + import mock import pytest @@ -8,9 +10,16 @@ from flake8.formatting import base as formatter def test_get_style_guide(): """Verify the methods called on our internal Application.""" + prelim_opts = argparse.Namespace( + output_file=None, + verbose=0, + ) mockedapp = mock.Mock() - mockedapp.prelim_opts.verbose = 0 - mockedapp.prelim_opts.output_file = None + mockedapp.prelim_opts = prelim_opts + mockedapp.parse_preliminary_options_and_args.return_value = ( + prelim_opts, + [], + ) with mock.patch('flake8.main.application.Application') as application: application.return_value = mockedapp style_guide = api.get_style_guide()