Skip to content
Snippets Groups Projects
test_api.py 1.04 KiB
import json
import os

import jsonschema
import pytest
import responses

import brian_polling_manager
from brian_polling_manager.api import VERSION_SCHEMA
from brian_polling_manager.main import REFRESH_RESULT_SCHEMA


@pytest.fixture
def client(config_filename, mocked_sensu, mocked_inventory):
    os.environ["CONFIG_FILENAME"] = config_filename
    app = brian_polling_manager.create_app()
    app.testing = True
    with app.test_client() as c:
        yield c


def test_version(client):
    rv = client.get(
        '/api/version',
        headers={'Accept': ['application/json']})
    assert rv.status_code == 200
    assert rv.is_json
    response_data = json.loads(rv.data.decode('utf-8'))
    jsonschema.validate(response_data, VERSION_SCHEMA)


@responses.activate
def test_update(client):
    rv = client.get(
        '/api/update',
        headers={'Accept': ['application/json']})
    assert rv.status_code == 200
    assert rv.is_json
    response_data = json.loads(rv.data.decode('utf-8'))
    jsonschema.validate(response_data, REFRESH_RESULT_SCHEMA)