diff options
| author | Anthony Sottile <asottile@umich.edu> | 2022-01-01 18:28:11 -0500 |
|---|---|---|
| committer | Anthony Sottile <asottile@umich.edu> | 2022-01-01 18:33:07 -0500 |
| commit | a8333e2bf22dbbf22739a554a70e094d2c80f460 (patch) | |
| tree | 5b39d29f1636de35ebf46a84cb1911db2b094cbe /tests | |
| parent | ff13916d74098adda648f02998c838317c0352e5 (diff) | |
| download | flake8-off_by_default.tar.gz | |
move managing of off_by_default / enable_extensions to plugin loadingoff_by_default
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/integration/test_checker.py | 2 | ||||
| -rw-r--r-- | tests/integration/test_plugins.py | 5 | ||||
| -rw-r--r-- | tests/unit/plugins/finder_test.py | 53 | ||||
| -rw-r--r-- | tests/unit/test_debug.py | 1 | ||||
| -rw-r--r-- | tests/unit/test_decision_engine.py | 100 | ||||
| -rw-r--r-- | tests/unit/test_legacy_api.py | 3 |
6 files changed, 81 insertions, 83 deletions
diff --git a/tests/integration/test_checker.py b/tests/integration/test_checker.py index 96b7d4b..9583179 100644 --- a/tests/integration/test_checker.py +++ b/tests/integration/test_checker.py @@ -90,7 +90,7 @@ def mock_file_checker_with_plugin(plugin_target): ), ), ] - plugins = finder.load_plugins(to_load, []) + plugins = finder.load_plugins(to_load, [], set()) # Prevent it from reading lines from stdin or somewhere else with mock.patch( diff --git a/tests/integration/test_plugins.py b/tests/integration/test_plugins.py index 682360c..e2c87e4 100644 --- a/tests/integration/test_plugins.py +++ b/tests/integration/test_plugins.py @@ -55,7 +55,7 @@ def test_enable_local_plugin_from_config(local_config): cfg, cfg_dir = config.load_config(local_config, [], isolated=False) plugins = finder.find_plugins(cfg) plugin_paths = finder.find_local_plugin_paths(cfg, cfg_dir) - loaded_plugins = finder.load_plugins(plugins, plugin_paths) + loaded_plugins = finder.load_plugins(plugins, plugin_paths, set()) (custom_extension,) = ( loaded @@ -82,7 +82,8 @@ def test_local_plugin_can_add_option(local_config): plugins = finder.find_plugins(cfg) plugin_paths = finder.find_local_plugin_paths(cfg, cfg_dir) - loaded_plugins = finder.load_plugins(plugins, plugin_paths) + enabled = finder.parse_enabled(cfg, stage1_args.enable_extensions) + loaded_plugins = finder.load_plugins(plugins, plugin_paths, enabled) option_manager = OptionManager( version="123", diff --git a/tests/unit/plugins/finder_test.py b/tests/unit/plugins/finder_test.py index 993c13c..f41aba4 100644 --- a/tests/unit/plugins/finder_test.py +++ b/tests/unit/plugins/finder_test.py @@ -49,6 +49,7 @@ def test_plugins_all_plugins(): physical_line=[physical_line_plugin], ), reporters={"R": report_plugin}, + disabled=[], ) assert tuple(plugins.all_plugins()) == ( @@ -72,6 +73,7 @@ def test_plugins_versions_str(): # ignore local plugins "custom": _loaded(_plugin(package="local")), }, + disabled=[], ) assert plugins.versions_str() == "pkg1: 1, pkg2: 2" @@ -374,6 +376,25 @@ def test_find_local_plugins(local_plugin_cfg): } +def test_parse_enabled_not_specified(): + assert finder.parse_enabled(configparser.RawConfigParser(), None) == set() + + +def test_parse_enabled_from_commandline(): + cfg = configparser.RawConfigParser() + cfg.add_section("flake8") + cfg.set("flake8", "enable_extensions", "A,B,C") + assert finder.parse_enabled(cfg, "D,E,F") == {"D", "E", "F"} + + +@pytest.mark.parametrize("opt", ("enable_extensions", "enable-extensions")) +def test_parse_enabled_from_config(opt): + cfg = configparser.RawConfigParser() + cfg.add_section("flake8") + cfg.set("flake8", opt, "A,B,C") + assert finder.parse_enabled(cfg, None) == {"A", "B", "C"} + + def test_find_plugins( tmp_path, flake8_dist, @@ -573,7 +594,13 @@ def test_classify_plugins(): physical_line_plugin = _loaded(parameters={"physical_line": True}) classified = finder._classify_plugins( - [report_plugin, tree_plugin, logical_line_plugin, physical_line_plugin] + [ + report_plugin, + tree_plugin, + logical_line_plugin, + physical_line_plugin, + ], + set(), ) assert classified == finder.Plugins( @@ -583,6 +610,27 @@ def test_classify_plugins(): physical_line=[physical_line_plugin], ), reporters={"R": report_plugin}, + disabled=[], + ) + + +def test_classify_plugins_enable_a_disabled_plugin(): + obj = mock.Mock(off_by_default=True) + plugin = _plugin(ep=_ep(name="ABC")) + loaded = _loaded(plugin=plugin, parameters={"tree": True}, obj=obj) + + classified_normal = finder._classify_plugins([loaded], set()) + classified_enabled = finder._classify_plugins([loaded], {"ABC"}) + + assert classified_normal == finder.Plugins( + checkers=finder.Checkers([], [], []), + reporters={}, + disabled=[loaded], + ) + assert classified_enabled == finder.Plugins( + checkers=finder.Checkers([loaded], [], []), + reporters={}, + disabled=[], ) @@ -590,7 +638,7 @@ def test_classify_plugins(): def test_load_plugins(): plugin = _plugin(ep=_ep(value="aplugin:ExtensionTestPlugin2")) - ret = finder.load_plugins([plugin], ["tests/integration/subdir"]) + ret = finder.load_plugins([plugin], ["tests/integration/subdir"], set()) import aplugin @@ -607,4 +655,5 @@ def test_load_plugins(): physical_line=[], ), reporters={}, + disabled=[], ) diff --git a/tests/unit/test_debug.py b/tests/unit/test_debug.py index 284dec6..1fc93ef 100644 --- a/tests/unit/test_debug.py +++ b/tests/unit/test_debug.py @@ -30,6 +30,7 @@ def test_debug_information(): physical_line=[], ), reporters={}, + disabled=[], ) info = debug.information("9001", plugins) diff --git a/tests/unit/test_decision_engine.py b/tests/unit/test_decision_engine.py index 213dd84..19d574a 100644 --- a/tests/unit/test_decision_engine.py +++ b/tests/unit/test_decision_engine.py @@ -16,7 +16,6 @@ def create_options(**kwargs): kwargs.setdefault("ignore", []) kwargs.setdefault("extend_ignore", []) kwargs.setdefault("disable_noqa", False) - kwargs.setdefault("enable_extensions", []) return argparse.Namespace(**kwargs) @@ -64,30 +63,25 @@ def test_was_ignored_implicitly_selects_errors( @pytest.mark.parametrize( - "select_list,extend_select,enable_extensions,error_code", - [ - (["E111", "E121"], [], [], "E111"), - (["E111", "E121"], [], [], "E121"), - (["E11", "E12"], [], [], "E121"), - (["E2", "E12"], [], [], "E121"), - (["E2", "E12"], [], [], "E211"), - (["E1"], ["E2"], [], "E211"), - (["E1"], [], ["E2"], "E211"), - ([], ["E2"], [], "E211"), - ([], [], ["E2"], "E211"), - (["E1"], ["E2"], [], "E211"), - (["E111"], ["E121"], ["E2"], "E121"), - ], + ("select_list", "extend_select", "error_code"), + ( + (["E111", "E121"], [], "E111"), + (["E111", "E121"], [], "E121"), + (["E11", "E12"], [], "E121"), + (["E2", "E12"], [], "E121"), + (["E2", "E12"], [], "E211"), + (["E1"], ["E2"], "E211"), + ([], ["E2"], "E211"), + (["E1"], ["E2"], "E211"), + (["E111"], ["E121"], "E121"), + ), ) -def test_was_selected_selects_errors( - select_list, extend_select, enable_extensions, error_code -): +def test_was_selected_selects_errors(select_list, extend_select, error_code): """Verify we detect users explicitly selecting an error.""" decider = style_guide.DecisionEngine( options=create_options( select=select_list, extend_select=extend_select, - enable_extensions=enable_extensions, ), ) @@ -199,15 +193,20 @@ def test_decision_for( @pytest.mark.parametrize( - "select,ignore,extended_default_ignore,extended_default_select," - "enabled_extensions,error_code,expected", + ( + "select", + "ignore", + "extended_default_ignore", + "extended_default_select", + "error_code", + "expected", + ), [ ( defaults.SELECT, [], [], ["I1"], - [], "I100", style_guide.Decision.Selected, ), @@ -216,7 +215,6 @@ def test_decision_for( [], [], ["I1"], - [], "I201", style_guide.Decision.Ignored, ), @@ -225,7 +223,6 @@ def test_decision_for( ["I2"], [], ["I1"], - [], "I101", style_guide.Decision.Selected, ), @@ -234,7 +231,6 @@ def test_decision_for( ["I2"], [], ["I1"], - [], "I201", style_guide.Decision.Ignored, ), @@ -243,7 +239,6 @@ def test_decision_for( ["I1"], [], ["I10"], - [], "I101", style_guide.Decision.Selected, ), @@ -252,43 +247,22 @@ def test_decision_for( ["I10"], [], ["I1"], - [], "I101", style_guide.Decision.Ignored, ), ( defaults.SELECT, - [], - [], - [], - ["U4"], - "U401", - style_guide.Decision.Selected, - ), - ( - defaults.SELECT, ["U401"], [], [], - ["U4"], "U401", style_guide.Decision.Ignored, ), ( - defaults.SELECT, - ["U401"], - [], - [], - ["U4"], - "U402", - style_guide.Decision.Selected, - ), - ( ["E", "W"], ["E13"], [], [], - [], "E131", style_guide.Decision.Ignored, ), @@ -297,18 +271,16 @@ def test_decision_for( ["E13"], [], [], - [], "E126", style_guide.Decision.Selected, ), - (["E2"], ["E21"], [], [], [], "E221", style_guide.Decision.Selected), - (["E2"], ["E21"], [], [], [], "E212", style_guide.Decision.Ignored), + (["E2"], ["E21"], [], [], "E221", style_guide.Decision.Selected), + (["E2"], ["E21"], [], [], "E212", style_guide.Decision.Ignored), ( ["F", "W"], ["C90"], [], ["I1"], - [], "C901", style_guide.Decision.Ignored, ), @@ -317,7 +289,6 @@ def test_decision_for( ["C"], [], [], - [], "E131", style_guide.Decision.Selected, ), @@ -325,17 +296,7 @@ def test_decision_for( defaults.SELECT, defaults.IGNORE, [], - [], - ["I"], - "I101", - style_guide.Decision.Selected, - ), - ( - defaults.SELECT, - defaults.IGNORE, - [], ["G"], - ["I"], "G101", style_guide.Decision.Selected, ), @@ -344,25 +305,14 @@ def test_decision_for( ["G1"], [], ["G"], - ["I"], "G101", style_guide.Decision.Ignored, ), ( - defaults.SELECT, - ["E126"], - [], - [], - ["I"], - "I101", - style_guide.Decision.Selected, - ), - ( ["E", "W"], defaults.IGNORE, [], ["I"], - [], "I101", style_guide.Decision.Ignored, ), @@ -371,7 +321,6 @@ def test_decision_for( defaults.IGNORE + ("I101",), ["I101"], [], - [], "I101", style_guide.Decision.Selected, ), @@ -380,7 +329,6 @@ def test_decision_for( defaults.IGNORE + ("I101",), ["I101"], [], - [], "I101", style_guide.Decision.Ignored, ), @@ -393,7 +341,6 @@ def test_more_specific_decision_for_logic( ignore, extended_default_ignore, extended_default_select, - enabled_extensions, error_code, expected, ): @@ -404,7 +351,6 @@ def test_more_specific_decision_for_logic( ignore=ignore, extended_default_select=extended_default_select, extended_default_ignore=extended_default_ignore, - enable_extensions=enabled_extensions, ), ) diff --git a/tests/unit/test_legacy_api.py b/tests/unit/test_legacy_api.py index 1033f5e..6424f60 100644 --- a/tests/unit/test_legacy_api.py +++ b/tests/unit/test_legacy_api.py @@ -19,6 +19,7 @@ def test_get_style_guide(): isolated=False, output_file=None, verbose=0, + enable_extensions=None, ) mockedapp = mock.Mock() mockedapp.parse_preliminary_options.return_value = (prelim_opts, []) @@ -34,7 +35,7 @@ def test_get_style_guide(): application.assert_called_once_with() mockedapp.parse_preliminary_options.assert_called_once_with([]) - mockedapp.find_plugins.assert_called_once_with(cfg, cfg_dir) + mockedapp.find_plugins.assert_called_once_with(cfg, cfg_dir, None) mockedapp.register_plugin_options.assert_called_once_with() mockedapp.parse_configuration_and_cli.assert_called_once_with( cfg, cfg_dir, [] |
