diff --git a/wsme/tests/test_types.py b/wsme/tests/test_types.py index ef432e4..494fb5e 100644 --- a/wsme/tests/test_types.py +++ b/wsme/tests/test_types.py @@ -269,6 +269,11 @@ class TestTypes(unittest.TestCase): except ValueError: pass + def test_validate_float(self): + self.assertEqual(types.validate_value(float, 1), 1.0) + self.assertEqual(types.validate_value(float, '1'), 1.0) + self.assertEqual(types.validate_value(float, 1.1), 1.1) + def test_register_invalid_array(self): self.assertRaises(ValueError, types.register_type, []) self.assertRaises(ValueError, types.register_type, [int, str]) diff --git a/wsme/types.py b/wsme/types.py index 02a5f84..95bee91 100644 --- a/wsme/types.py +++ b/wsme/types.py @@ -218,6 +218,8 @@ def validate_value(datatype, value): value = value.decode() elif datatype is bytes and isinstance(value, text): value = value.encode() + elif datatype is float and not isinstance(value, float): + value = float(value) elif not isinstance(value, datatype): raise ValueError( "Wrong type. Expected '%s', got '%s'" % (