summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Berman <Julian+git@GrayVines.com>2012-01-15 20:54:14 -0500
committerJulian Berman <Julian+git@GrayVines.com>2012-01-15 20:54:14 -0500
commit5d6910d544991eef9210ab2573b797add4b6cb73 (patch)
tree1b717ad373cb54156f940cbf6e2862d2e4b3a0fb
parentce63985a3d854c016985923d55e8716d5aa579c5 (diff)
downloadjsonschema-5d6910d544991eef9210ab2573b797add4b6cb73.tar.gz
Decimal test.
-rw-r--r--tests.py26
1 files changed, 21 insertions, 5 deletions
diff --git a/tests.py b/tests.py
index bda2a62..1079a63 100644
--- a/tests.py
+++ b/tests.py
@@ -1,5 +1,6 @@
from __future__ import with_statement
-import functools
+from decimal import Decimal
+from functools import wraps
import warnings
import sys
@@ -54,21 +55,22 @@ def partial(fn, *args, **kwargs):
"""
- @functools.wraps(fn)
+ @wraps(fn)
def _partial(self):
return fn(self, *args, **kwargs)
return _partial
-def validation_test(schema=(), **kwschema):
+def validation_test(schema=(), initkwargs=(), **kwschema):
schema = dict(schema, **kwschema)
+ initkwargs = dict(initkwargs)
def _validation_test(self, expected, instance):
if expected == "valid":
- validate(instance, schema)
+ validate(instance, schema, **initkwargs)
elif expected == "invalid":
with self.assertRaises(ValidationError):
- validate(instance, schema)
+ validate(instance, schema, **initkwargs)
else: # pragma: no cover
raise ValueError("You spelled something wrong.")
@@ -491,4 +493,18 @@ class TestValidate(unittest.TestCase):
unknown_property="skip"
)
+ decimal = parametrized(
+ ("integer", "valid", 1),
+ ("number", "valid", 1.1),
+ ("decimal", "valid", Decimal(1) / Decimal(8)),
+ ("string", "invalid", u"foo"),
+ ("object", "invalid", {}),
+ ("array", "invalid", []),
+ ("boolean", "invalid", True),
+ ("null", "invalid", None),
+ )(validation_test(
+ initkwargs={"number_types" : (int, float, Decimal)},
+ type=u"number")
+ )
+
# Test that only the types that are json-loaded validate (e.g. bytestrings)