mirror of
https://github.com/PyCQA/flake8.git
synced 2026-03-31 19:26:52 +00:00
This simplifies the number of required parameters needed for the `ConfigFileFinder` object throughout the various tests.
58 lines
2 KiB
Python
58 lines
2 KiB
Python
"""Test aggregation of config files and command-line options."""
|
|
import argparse
|
|
import os
|
|
|
|
import pytest
|
|
|
|
from flake8.main import options
|
|
from flake8.options import aggregator
|
|
from flake8.options import config
|
|
from flake8.options import manager
|
|
|
|
CLI_SPECIFIED_CONFIG = 'tests/fixtures/config_files/cli-specified.ini'
|
|
|
|
|
|
@pytest.fixture
|
|
def optmanager():
|
|
"""Create a new OptionManager."""
|
|
prelim_parser = argparse.ArgumentParser(add_help=False)
|
|
options.register_preliminary_options(prelim_parser)
|
|
option_manager = manager.OptionManager(
|
|
prog='flake8',
|
|
version='3.0.0',
|
|
parents=[prelim_parser],
|
|
)
|
|
options.register_default_options(option_manager)
|
|
return option_manager
|
|
|
|
|
|
def test_aggregate_options_with_config(optmanager):
|
|
"""Verify we aggregate options and config values appropriately."""
|
|
arguments = ['flake8', '--select',
|
|
'E11,E34,E402,W,F', '--exclude', 'tests/*']
|
|
config_finder = config.ConfigFileFinder(
|
|
'flake8',
|
|
config_file=CLI_SPECIFIED_CONFIG)
|
|
options, args = aggregator.aggregate_options(
|
|
optmanager, config_finder, 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):
|
|
"""Verify we aggregate options and config values appropriately."""
|
|
arguments = ['flake8', '--select', 'E11,E34,E402,W,F',
|
|
'--exclude', 'tests/*']
|
|
config_finder = config.ConfigFileFinder(
|
|
'flake8', ignore_config_files=True)
|
|
optmanager.extend_default_ignore(['E8'])
|
|
options, args = aggregator.aggregate_options(
|
|
optmanager, config_finder, arguments)
|
|
|
|
assert options.select == ['E11', 'E34', 'E402', 'W', 'F']
|
|
assert sorted(options.ignore) == [
|
|
'E121', 'E123', 'E126', 'E226', 'E24', 'E704', 'E8', 'W503', 'W504',
|
|
]
|
|
assert options.exclude == [os.path.abspath('tests/*')]
|