Commit d7c2e865 by dark-lbp Committed by Marcin Bury

Make OptInteger handle value 0 and hex value. (#613)

parent 47183c74
...@@ -20,7 +20,7 @@ class Option(object): ...@@ -20,7 +20,7 @@ class Option(object):
except ValueError: except ValueError:
raise OptionValidationError("Invalid value. Cannot cast '{}' to boolean.".format(advanced)) raise OptionValidationError("Invalid value. Cannot cast '{}' to boolean.".format(advanced))
if default: if default or default == 0:
self.__set__("", default) self.__set__("", default)
else: else:
self.display_value = "" self.display_value = ""
...@@ -93,7 +93,10 @@ class OptInteger(Option): ...@@ -93,7 +93,10 @@ class OptInteger(Option):
self.display_value = str(value) self.display_value = str(value)
self.value = int(value) self.value = int(value)
except ValueError: except ValueError:
raise OptionValidationError("Invalid option. Cannot cast '{}' to integer.".format(value)) try:
self.value = int(value, 16)
except ValueError:
raise OptionValidationError("Invalid option. Cannot cast '{}' to integer.".format(value))
class OptFloat(Option): class OptFloat(Option):
......
...@@ -118,6 +118,18 @@ def test_opt_integer(): ...@@ -118,6 +118,18 @@ def test_opt_integer():
assert opt_integer.value == 9999999 assert opt_integer.value == 9999999
assert opt_integer.__get__(None, None) == 9999999 assert opt_integer.__get__(None, None) == 9999999
# Test OptInteger setting to 0
opt_integer = OptInteger(0, "Test Integer with 0")
assert opt_integer.display_value == "0"
assert opt_integer.value == 0
assert opt_integer.__get__(None, None) == 0
# Test OptInteger setting to 0x100
opt_integer.__set__(None, "0x100")
assert opt_integer.display_value == "0x100"
assert opt_integer.value == 0x100
assert opt_integer.__get__(None, None) == 0x100
# Test OptInteget setting to invalid value # Test OptInteget setting to invalid value
try: try:
opt_integer.__set__(None, "Invalid Value") opt_integer.__set__(None, "Invalid Value")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment