1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
"""Unit tests for flake8.options.manager.Option."""
import mock
import pytest
from flake8.options import manager
def test_to_optparse():
"""Test conversion to an optparse.Option class."""
opt = manager.Option(
short_option_name='-t',
long_option_name='--test',
action='count',
parse_from_config=True,
normalize_paths=True,
)
assert opt.normalize_paths is True
assert opt.parse_from_config is True
optparse_opt = opt.to_optparse()
assert not hasattr(optparse_opt, 'parse_from_config')
assert not hasattr(optparse_opt, 'normalize_paths')
assert optparse_opt.action == 'count'
@mock.patch('optparse.Option')
def test_to_optparse_creates_an_option_as_we_expect(Option):
"""Show that we pass all keyword args to optparse.Option."""
opt = manager.Option('-t', '--test', action='count')
opt.to_optparse()
option_kwargs = {
'action': 'count',
'default': None,
'type': None,
'dest': 'test',
'nargs': None,
'const': None,
'choices': None,
'callback': None,
'callback_args': None,
'callback_kwargs': None,
'help': None,
'metavar': None,
}
Option.assert_called_once_with(
'-t', '--test', **option_kwargs
)
def test_config_name_generation():
"""Show that we generate the config name deterministically."""
opt = manager.Option(long_option_name='--some-very-long-option-name',
parse_from_config=True)
assert opt.config_name == 'some_very_long_option_name'
def test_config_name_needs_long_option_name():
"""Show that we error out if the Option should be parsed from config."""
with pytest.raises(ValueError):
manager.Option('-s', parse_from_config=True)
def test_dest_is_not_overridden():
"""Show that we do not override custom destinations."""
opt = manager.Option('-s', '--short', dest='something_not_short')
assert opt.dest == 'something_not_short'
|