mirror of
https://github.com/PyCQA/flake8.git
synced 2026-03-29 02:26:54 +00:00
82 lines
2 KiB
Python
82 lines
2 KiB
Python
"""Test aggregation of config files and command-line options."""
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
|
|
import pytest
|
|
|
|
from flake8.main import options
|
|
from flake8.options import aggregator
|
|
from flake8.options import config
|
|
from flake8.options import manager
|
|
|
|
|
|
@pytest.fixture
|
|
def optmanager():
|
|
"""Create a new OptionManager."""
|
|
option_manager = manager.OptionManager(
|
|
version="3.0.0",
|
|
plugin_versions="",
|
|
parents=[],
|
|
)
|
|
options.register_default_options(option_manager)
|
|
return option_manager
|
|
|
|
|
|
@pytest.fixture
|
|
def flake8_config(tmp_path):
|
|
cfg_s = """\
|
|
[flake8]
|
|
ignore =
|
|
E123,
|
|
W234,
|
|
E111
|
|
exclude =
|
|
foo/,
|
|
bar/,
|
|
bogus/
|
|
quiet = 1
|
|
"""
|
|
cfg = tmp_path.joinpath("tox.ini")
|
|
cfg.write_text(cfg_s)
|
|
return str(cfg)
|
|
|
|
|
|
def test_aggregate_options_with_config(optmanager, flake8_config):
|
|
"""Verify we aggregate options and config values appropriately."""
|
|
arguments = [
|
|
"flake8",
|
|
"--select",
|
|
"E11,E34,E402,W,F",
|
|
"--exclude",
|
|
"tests/*",
|
|
]
|
|
cfg, cfg_dir = config.load_config(flake8_config, [])
|
|
options = aggregator.aggregate_options(
|
|
optmanager,
|
|
cfg,
|
|
cfg_dir,
|
|
arguments,
|
|
)
|
|
|
|
assert options.select == ["E11", "E34", "E402", "W", "F"]
|
|
assert options.ignore == ["E123", "W234", "E111"]
|
|
assert options.exclude == [os.path.abspath("tests/*")]
|
|
|
|
|
|
def test_aggregate_options_when_isolated(optmanager, flake8_config):
|
|
"""Verify we aggregate options and config values appropriately."""
|
|
arguments = [
|
|
"flake8",
|
|
"--select",
|
|
"E11,E34,E402,W,F",
|
|
"--exclude",
|
|
"tests/*",
|
|
]
|
|
cfg, cfg_dir = config.load_config(flake8_config, [], isolated=True)
|
|
optmanager.extend_default_ignore(["E8"])
|
|
options = aggregator.aggregate_options(optmanager, cfg, cfg_dir, arguments)
|
|
|
|
assert options.select == ["E11", "E34", "E402", "W", "F"]
|
|
assert options.ignore is None
|
|
assert options.exclude == [os.path.abspath("tests/*")]
|