test_poller_routes.py 1.93 KiB
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