import json import jsonschema DEFAULT_REQUEST_HEADERS = { "Content-type": "application/json", "Accept": ["application/json"] } def test_router_interfaces(router, client): interfaces_list_schema = { "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "circuit": { "type": "object", "properties": { "name": {"type": "string"}, "status": {"type": "string"}, "type": {"type": "string"}, "id": {"type": "integer"} }, "required": ["name", "status", "type", "id"], "additionalProperties": False } }, "type": "array", "items": { "type": "object", "properties": { "circuits": { "type": "array", "items": {"$ref": "#/definitions/circuit"} }, "bundle": { "type": "array", "items": {"type": "string"} }, "bundle-parents": { "type": "array", "items": {"type": "string"} }, "description": {"type": "string"}, "name": {"type": "string"}, "snmp-index": {"type": "integer"} }, "required": [ "circuits", "bundle", "bundle-parents", "description", "name", "snmp-index"], "additionalProperties": False } } rv = client.post( "/poller/interfaces/" + router, headers=DEFAULT_REQUEST_HEADERS) assert rv.status_code == 200 response = json.loads(rv.data.decode("utf-8")) jsonschema.validate(response, interfaces_list_schema) assert response # at least shouldn't be empty