-
Bjarke Madsen authored
Coverage module doesn't work well with multiprocessing
Bjarke Madsen authoredCoverage module doesn't work well with multiprocessing
test_grafana_request.py 2.70 KiB
import pytest
import responses
import requests
import json
from brian_dashboard_manager.grafana.utils.request import \
AdminRequest, \
TokenRequest
@responses.activate
def test_admin_request(data_config):
ENDPOINT = 'test/url/endpoint'
request = AdminRequest(**data_config)
url = '{admin_username}:{admin_password}@{hostname}/'. \
format(**data_config)
assert request.BASE_URL == 'http://' + url
assert request.username == data_config['admin_username']
def get_callback(request):
assert request.path_url[1:] == ENDPOINT
return 200, {}, '{}'
responses.add_callback(
method=responses.GET,
url=request.BASE_URL + ENDPOINT,
callback=get_callback)
request.get(ENDPOINT)
@responses.activate
def test_token_request(data_config):
TOKEN = '123'
ENDPOINT = 'test/url/endpoint'
request = TokenRequest(**data_config, token=TOKEN)
assert request.BASE_URL == 'http://{hostname}/'.format(
**data_config)
assert request.token == TOKEN
def get_callback(request):
assert request.path_url[1:] == ENDPOINT
assert TOKEN in request.headers['authorization']
return 200, {}, '{}'
responses.add_callback(
method=responses.GET,
url=request.BASE_URL + ENDPOINT,
callback=get_callback)
request.get(ENDPOINT)
# document unimplemented handling of server-side errors
@pytest.mark.xfail(raises=requests.exceptions.HTTPError)
@responses.activate
def test_POST_fails(data_config):
ORG_NAME = 'fakeorg123'
def post_callback(request):
body = json.loads(request.body)
assert body['name'] == ORG_NAME
return 500, {}, ''
request = AdminRequest(**data_config)
responses.add_callback(
method=responses.POST,
url=request.BASE_URL + 'api/orgs',
callback=post_callback)
request.post('api/orgs', json={'name': ORG_NAME})
@pytest.mark.xfail(raises=requests.exceptions.HTTPError)
@responses.activate
def test_GET_fails(data_config):
ORG_NAME = 'fakeorg123'
def get_callback(request):
return 500, {}, ''
request = AdminRequest(**data_config)
responses.add_callback(
method=responses.GET,
url=request.BASE_URL + 'api/orgs',
callback=get_callback)
request.get('api/orgs', json={'name': ORG_NAME})
@pytest.mark.xfail(raises=requests.exceptions.HTTPError)
@responses.activate
def test_DELETE_fails(data_config):
def delete_callback(request):
return 500, {}, ''
request = AdminRequest(**data_config)
responses.add_callback(
method=responses.DELETE,
url=request.BASE_URL + 'api/orgs/1',
callback=delete_callback)
request.delete('api/orgs/1')