Don't floatify the instance in minimum/maximum messages.

This commit is contained in:
Julian Berman
2013-12-26 11:53:38 -05:00
parent 44b35706a7
commit f13ac35b63
2 changed files with 12 additions and 6 deletions

View File

@@ -76,12 +76,11 @@ def minimum(validator, minimum, instance, schema):
if not validator.is_type(instance, "number"):
return
instance = float(instance)
if schema.get("exclusiveMinimum", False):
failed = instance <= minimum
failed = float(instance) <= minimum
cmp = "less than or equal to"
else:
failed = instance < minimum
failed = float(instance) < minimum
cmp = "less than"
if failed:
@@ -94,12 +93,11 @@ def maximum(validator, maximum, instance, schema):
if not validator.is_type(instance, "number"):
return
instance = float(instance)
if schema.get("exclusiveMaximum", False):
failed = instance >= maximum
failed = float(instance) >= maximum
cmp = "greater than or equal to"
else:
failed = instance > maximum
failed = float(instance) > maximum
cmp = "greater than"
if failed:

View File

@@ -141,6 +141,14 @@ class TestValidationErrorMessages(unittest.TestCase):
message = self.message_for(instance=1, schema=schema)
self.assertEqual(message, "1 is not of type %r" % (name,))
def test_minimum(self):
message = self.message_for(instance=1, schema={"minimum" : 2})
self.assertEqual(message, "1 is less than the minimum of 2")
def test_maximum(self):
message = self.message_for(instance=1, schema={"maximum" : 0})
self.assertEqual(message, "1 is greater than the maximum of 0")
def test_dependencies_failure_has_single_element_not_list(self):
depend, on = "bar", "foo"
schema = {u"dependencies" : {depend : on}}