Skip to content
Snippets Groups Projects
test_alarmdb_routes.py 1.07 KiB
import json
import jsonschema

DEFAULT_REQUEST_HEADERS = {
    "Content-type": "application/json",
    "Accept": ["application/json"]
}


def test_get_interface_status(mocker, client):
    mocked_conn = mocker.patch('inventory_provider.routes.alarmsdb'
                               '.db.connection')
    mocked_conn.return_value.__enter__.return_value = None

    mocked_inteface_status = mocker.patch(
        'inventory_provider.routes.alarmsdb.'
        'alarmsdb.get_last_known_interface_status')
    mocked_inteface_status.return_value = "up"

    rv = client.get(
        '/alarmsdb/interface-status?'
        'equipment=mx1.lon.uk.geant.net&interface=xe-1/2/2',
        headers=DEFAULT_REQUEST_HEADERS)

    interfaces_list_schema = {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
            "status": {
                "type": "string",
            }
        }
    }

    response = json.loads(rv.data.decode("utf-8"))
    jsonschema.validate(response, interfaces_list_schema)
    assert response == {"status": "up"}