summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/flake8/options/manager.py4
-rw-r--r--tests/unit/test_option.py10
2 files changed, 14 insertions, 0 deletions
diff --git a/src/flake8/options/manager.py b/src/flake8/options/manager.py
index 3f4e883..0ded13a 100644
--- a/src/flake8/options/manager.py
+++ b/src/flake8/options/manager.py
@@ -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"):
diff --git a/tests/unit/test_option.py b/tests/unit/test_option.py
index 76b4341..eb4f95d 100644
--- a/tests/unit/test_option.py
+++ b/tests/unit/test_option.py
@@ -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."""