test_general_routes.py 1.87 KiB
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)