Merge branch 'master' into 'master'

Add support for optparse's 'float' and 'complex' types.

Closes #452

See merge request pycqa/flake8!261
This commit is contained in:
Ian Stapleton Cordasco 2019-01-17 13:50:50 +00:00
commit 0f3f4ff9b4
2 changed files with 14 additions and 0 deletions

View file

@ -156,6 +156,10 @@ class Option(object):
value = self.normalize(value)
if self.type == "int" or self.action == "count":
return int(value)
elif self.type == "float":
return float(value)
elif self.type == "complex":
return complex(value)
if self.action in ("store_true", "store_false"):
value = str(value).upper()
if value in ("1", "T", "TRUE", "ON"):

View file

@ -23,6 +23,16 @@ def test_to_optparse():
assert optparse_opt.action == 'count'
@pytest.mark.parametrize('opttype,str_val,expected', [
('float', '2', 2.0),
('complex', '2', (2 + 0j)),
])
def test_to_support_optparses_standard_types(opttype, str_val, expected):
"""Show that optparse converts float and complex types correctly."""
opt = manager.Option('-t', '--test', type=opttype)
assert opt.normalize_from_setuptools(str_val) == expected
@mock.patch('optparse.Option')
def test_to_optparse_creates_an_option_as_we_expect(Option): # noqa: N803
"""Show that we pass all keyword args to optparse.Option."""