import json import jsonschema from inventory_provider.routes import common from inventory_provider.routes.default import VERSION_SCHEMA DEFAULT_REQUEST_HEADERS = { 'Content-type': 'application/json', 'Accept': ['application/json'] } def test_version_request(client, mocked_redis): rv = client.post( 'version', headers=DEFAULT_REQUEST_HEADERS) assert rv.status_code == 200 jsonschema.validate( json.loads(rv.data.decode('utf-8')), VERSION_SCHEMA) def test_load_json_docs(data_config, mocked_redis): INTERFACE_SCHEMA = { '$schema': 'http://json-schema.org/draft-07/schema#', 'definitions': { 'interface': { 'type': 'object', 'properties': { 'logical-system': {'type': 'string'}, 'name': {'type': 'string'}, 'description': {'type': 'string'}, 'bundle': { 'type': 'array', 'items': {'type': 'string'} }, 'ipv4': { 'type': 'array', 'items': {'type': 'string'} }, 'ipv6': { 'type': 'array', 'items': {'type': 'string'} } }, 'required': ['name', 'description', 'ipv4', 'ipv6'], 'additionalProperties': False } }, 'type': 'object', 'properties': { 'key': {'type': 'string'}, 'value': {'$ref': '#/definitions/interface'} }, 'required': ['key', 'value'], 'additionalProperties': False } for ifc in common.load_json_docs( data_config, 'netconf-interfaces:*', num_threads=20): jsonschema.validate(ifc, INTERFACE_SCHEMA)