diff options
author | Julian Berman <Julian+git@GrayVines.com> | 2012-01-15 20:54:14 -0500 |
---|---|---|
committer | Julian Berman <Julian+git@GrayVines.com> | 2012-01-15 20:54:14 -0500 |
commit | 5d6910d544991eef9210ab2573b797add4b6cb73 (patch) | |
tree | 1b717ad373cb54156f940cbf6e2862d2e4b3a0fb | |
parent | ce63985a3d854c016985923d55e8716d5aa579c5 (diff) | |
download | jsonschema-5d6910d544991eef9210ab2573b797add4b6cb73.tar.gz |
Decimal test.
-rw-r--r-- | tests.py | 26 |
1 files changed, 21 insertions, 5 deletions
@@ -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) |