def __init__(self, app, entry_point_group=None): """Initialize state.""" self.app = app self.app.register_blueprint(blueprint) self.resolver = JSONResolver(entry_point_group=entry_point_group) self.ref_resolver_cls = ref_resolver_factory(self.resolver) self.loader_cls = json_loader_factory(self.resolver)
def json_resolver(schema): """Test ``json_resolver``.""" json_resolver = JSONResolver(plugins=[ 'demo.json_resolver', ]) resolver_cls = ref_resolver_factory(json_resolver) return resolver_cls.from_schema(schema)
def cds_jsonresolver(app): """Configure a jsonresolver for cds-dojson.""" resolver = JSONResolver(plugins=['demo.json_resolver']) app.extensions['invenio-records'].ref_resolver_cls = ref_resolver_factory( resolver) app.extensions['invenio-records'].loader_cls = json_loader_factory( resolver)
def __init__(self, app, entry_point_group=None): """Initialize state.""" self.app = app self.resolver = JSONResolver(entry_point_group=entry_point_group) self.refresolver_cls = ref_resolver_factory(self.resolver) self.refresolver_store = None if (self.app.config.get("RECORDS_REFRESOLVER_CLS")): self.refresolver_cls = obj_or_import_string( self.app.config.get("RECORDS_REFRESOLVER_CLS"), ) self.refresolver_store = obj_or_import_string( self.app.config.get("RECORDS_REFRESOLVER_STORE")) self.loader_cls = json_loader_factory(self.resolver)
def test_jsonresolver(): """Test extension initialization.""" app = Flask('testapp') InvenioJSONSchemas(app) assert 'invenio-jsonschemas' in app.extensions with app.app_context(): json_resolver = JSONResolver( plugins=['invenio_jsonschemas.jsonresolver', ]) schema = {'$ref': 'http://localhost/schemas/some_schema.json'} resolver_cls = ref_resolver_factory(json_resolver) resolver = resolver_cls.from_schema(schema) with pytest.raises(ValidationError) as exc_info: validate({'foo': 'foo_value', 'bar': "not_an_int"}, schema, resolver=resolver) assert exc_info.value.schema == {'type': 'integer'}
def test_missing_route(): """Test orignal resolver.""" example_schema = { '$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': { 'authors': {'$ref': 'file:///missing.json#'} }, 'additionalProperties': False, } data = {'authors': [{'name': 'Ellis'}]} json_resolver = JSONResolver(plugins=['demo.schema']) resolver_cls = ref_resolver_factory(json_resolver) resolver = resolver_cls.from_schema(example_schema) with pytest.raises(RefResolutionError): list(validate(data, example_schema, resolver=resolver))
def test_missing_route(): """Test orignal resolver.""" example_schema = { '$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': { 'authors': { '$ref': 'file:///missing.json#' } }, 'additionalProperties': False, } data = {'authors': [{'name': 'Ellis'}]} json_resolver = JSONResolver(plugins=['demo.schema']) resolver_cls = ref_resolver_factory(json_resolver) resolver = resolver_cls.from_schema(example_schema) with pytest.raises(RefResolutionError): list(validate(data, example_schema, resolver=resolver))
def test_key_resolver(): """Test JSONSchema validation with custom reference resolver.""" example_schema = { '$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': { 'authors': {'$ref': 'http://localhost:4000/schema/authors.json#'} }, 'additionalProperties': False, } data = {'authors': [{'name': 'Ellis'}]} json_resolver = JSONResolver(plugins=['demo.schema']) resolver_cls = ref_resolver_factory(json_resolver) resolver = resolver_cls.from_schema(example_schema) assert validate(data, example_schema, resolver=resolver) is None resolver = resolver_cls.from_schema( example_schema['properties']['authors']) assert validate(data['authors'], example_schema['properties']['authors'], resolver=resolver) is None
def test_key_resolver(): """Test JSONSchema validation with custom reference resolver.""" example_schema = { '$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': { 'authors': { '$ref': 'http://localhost:4000/schema/authors.json#' } }, 'additionalProperties': False, } data = {'authors': [{'name': 'Ellis'}]} json_resolver = JSONResolver(plugins=['demo.schema']) resolver_cls = ref_resolver_factory(json_resolver) resolver = resolver_cls.from_schema(example_schema) assert validate(data, example_schema, resolver=resolver) is None resolver = resolver_cls.from_schema( example_schema['properties']['authors']) assert validate(data['authors'], example_schema['properties']['authors'], resolver=resolver) is None
def __init__(self, app, entry_point_group=None): """Initialize state.""" self.app = app self.resolver = JSONResolver(entry_point_group=entry_point_group) self.ref_resolver_cls = ref_resolver_factory(self.resolver)
def json_resolver(schema): """Test ``json_resolver``.""" json_resolver = JSONResolver(plugins=['demo.json_resolver', ]) resolver_cls = ref_resolver_factory(json_resolver) return resolver_cls.from_schema(schema)