Validate against draft Commodity schema.

This commit is contained in:
James Muscat 2014-12-17 14:18:58 +00:00
parent cceb77d7a1
commit 66bfe98c14
2 changed files with 13 additions and 0 deletions

View File

@ -4,6 +4,11 @@
"type": "object",
"additionalProperties": false,
"properties": {
"$schemaRef": {
"id": "#$schemaRef",
"type": "string",
"additionalProperties": false
},
"header": {
"id": "#header",
"type": "object",

View File

@ -1,5 +1,6 @@
import simplejson
from enum import IntEnum
from jsonschema import validate as jsValidate, ValidationError
class Validator(object):
@ -23,6 +24,13 @@ class Validator(object):
if schemaRef not in self.schemas.keys():
# We don't want to go out to the Internet and retrieve unknown schemas.
results.add(ValidationSeverity.FATAL, JsonValidationException("Schema " + schemaRef + " is unknown, unable to validate."))
return results
schema = self.schemas[schemaRef]
try:
jsValidate(json_object, schema)
except ValidationError as e:
results.add(ValidationSeverity.ERROR, e)
return results