Exemple #1
0
 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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
    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)
Exemple #5
0
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_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
Exemple #11
0
 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)
Exemple #12
0
 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)
Exemple #13
0
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)