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
|
"""Unit tests for flake8.options.manager.Option."""
import functools
from unittest import mock
import pytest
from flake8.options import manager
def test_to_argparse():
"""Test conversion to an argparse arguments."""
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
args, kwargs = opt.to_argparse()
assert args == ['-t', '--test']
assert kwargs == {'action': 'count', 'type': mock.ANY}
assert isinstance(kwargs['type'], functools.partial)
def test_to_optparse():
"""Test that .to_optparse() produces a useful error message."""
with pytest.raises(AttributeError) as excinfo:
manager.Option('--foo').to_optparse
msg, = excinfo.value.args
assert msg == 'to_optparse: flake8 now uses argparse'
def test_to_argparse_creates_an_option_as_we_expect():
"""Show that we pass all keyword args to argparse."""
opt = manager.Option('-t', '--test', action='count')
args, kwargs = opt.to_argparse()
assert args == ['-t', '--test']
assert kwargs == {'action': 'count'}
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'
|