Skip to content
Snippets Groups Projects
Commit f60dcd17 authored by Erik Reid's avatar Erik Reid
Browse files

added api tests

parent 756470ac
No related branches found
No related tags found
No related merge requests found
...@@ -23,7 +23,7 @@ import pkg_resources ...@@ -23,7 +23,7 @@ import pkg_resources
from flask import Blueprint, current_app, request, Response, jsonify from flask import Blueprint, current_app, request, Response, jsonify
from brian_polling_manager import CONFIG_KEY from brian_polling_manager import CONFIG_KEY
from brian_polling_manager.main import refresh from brian_polling_manager import main
routes = Blueprint("api-routes", __name__) routes = Blueprint("api-routes", __name__)
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
...@@ -159,5 +159,5 @@ def update(): ...@@ -159,5 +159,5 @@ def update():
:return: :return:
""" """
response = refresh(config=current_app.config[CONFIG_KEY]) response = main.refresh(config=current_app.config[CONFIG_KEY])
return jsonify(response) return jsonify(response)
...@@ -55,6 +55,14 @@ def config(): ...@@ -55,6 +55,14 @@ def config():
} }
@pytest.fixture
def config_filename(config):
with tempfile.NamedTemporaryFile(mode='w') as f:
f.write(json.dumps(config))
f.flush()
yield f.name
@pytest.fixture @pytest.fixture
def mocked_sensu(): def mocked_sensu():
......
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
with brian_polling_manager.create_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)
...@@ -8,15 +8,11 @@ from brian_polling_manager import main ...@@ -8,15 +8,11 @@ from brian_polling_manager import main
@responses.activate @responses.activate
def test_run_flashtest(config, mocked_sensu, mocked_inventory): def test_run_flashtest(config_filename, mocked_sensu, mocked_inventory):
with tempfile.NamedTemporaryFile(mode='w') as f: runner = CliRunner()
f.write(json.dumps(config)) result = runner.invoke(
f.flush() main.cli,
['--config', config_filename, '--force']
runner = CliRunner() )
result = runner.invoke( assert result.exit_code == 0
main.cli,
['--config', f.name, '--force']
)
assert result.exit_code == 0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment