From 244b01d80d24cf3c9b51699abd1df797c4430981 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Mon, 10 May 2021 00:00:29 +0200 Subject: api: Restore trace endpoint This change adds the trace endpoint, which was unfortunately removed due to an incorrect .gitignore statement. --- .../opendc-web-api/opendc/api/v2/traces/__init__.py | 0 .../opendc-web-api/opendc/api/v2/traces/endpoint.py | 10 ++++++++++ .../opendc-web-api/opendc/api/v2/traces/test_endpoint.py | 6 ++++++ .../opendc/api/v2/traces/traceId/__init__.py | 0 .../opendc/api/v2/traces/traceId/endpoint.py | 14 ++++++++++++++ .../opendc/api/v2/traces/traceId/test_endpoint.py | 15 +++++++++++++++ 6 files changed, 45 insertions(+) create mode 100644 opendc-web/opendc-web-api/opendc/api/v2/traces/__init__.py create mode 100644 opendc-web/opendc-web-api/opendc/api/v2/traces/endpoint.py create mode 100644 opendc-web/opendc-web-api/opendc/api/v2/traces/test_endpoint.py create mode 100644 opendc-web/opendc-web-api/opendc/api/v2/traces/traceId/__init__.py create mode 100644 opendc-web/opendc-web-api/opendc/api/v2/traces/traceId/endpoint.py create mode 100644 opendc-web/opendc-web-api/opendc/api/v2/traces/traceId/test_endpoint.py (limited to 'opendc-web') diff --git a/opendc-web/opendc-web-api/opendc/api/v2/traces/__init__.py b/opendc-web/opendc-web-api/opendc/api/v2/traces/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/opendc-web/opendc-web-api/opendc/api/v2/traces/endpoint.py b/opendc-web/opendc-web-api/opendc/api/v2/traces/endpoint.py new file mode 100644 index 00000000..ee699e02 --- /dev/null +++ b/opendc-web/opendc-web-api/opendc/api/v2/traces/endpoint.py @@ -0,0 +1,10 @@ +from opendc.models.trace import Trace +from opendc.util.rest import Response + + +def GET(_): + """Get all available Traces.""" + + traces = Trace.get_all() + + return Response(200, 'Successfully retrieved Traces', traces.obj) diff --git a/opendc-web/opendc-web-api/opendc/api/v2/traces/test_endpoint.py b/opendc-web/opendc-web-api/opendc/api/v2/traces/test_endpoint.py new file mode 100644 index 00000000..36846bd9 --- /dev/null +++ b/opendc-web/opendc-web-api/opendc/api/v2/traces/test_endpoint.py @@ -0,0 +1,6 @@ +from opendc.util.database import DB + + +def test_get_traces(client, mocker): + mocker.patch.object(DB, 'fetch_all', return_value=[]) + assert '200' in client.get('/v2/traces').status diff --git a/opendc-web/opendc-web-api/opendc/api/v2/traces/traceId/__init__.py b/opendc-web/opendc-web-api/opendc/api/v2/traces/traceId/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/opendc-web/opendc-web-api/opendc/api/v2/traces/traceId/endpoint.py b/opendc-web/opendc-web-api/opendc/api/v2/traces/traceId/endpoint.py new file mode 100644 index 00000000..670f88d1 --- /dev/null +++ b/opendc-web/opendc-web-api/opendc/api/v2/traces/traceId/endpoint.py @@ -0,0 +1,14 @@ +from opendc.models.trace import Trace +from opendc.util.rest import Response + + +def GET(request): + """Get this Trace.""" + + request.check_required_parameters(path={'traceId': 'string'}) + + trace = Trace.from_id(request.params_path['traceId']) + + trace.check_exists() + + return Response(200, 'Successfully retrieved trace.', trace.obj) diff --git a/opendc-web/opendc-web-api/opendc/api/v2/traces/traceId/test_endpoint.py b/opendc-web/opendc-web-api/opendc/api/v2/traces/traceId/test_endpoint.py new file mode 100644 index 00000000..0c51538b --- /dev/null +++ b/opendc-web/opendc-web-api/opendc/api/v2/traces/traceId/test_endpoint.py @@ -0,0 +1,15 @@ +from opendc.util.database import DB + +test_id = 24 * '1' + + +def test_get_trace_non_existing(client, mocker): + mocker.patch.object(DB, 'fetch_one', return_value=None) + assert '404' in client.get(f'/v2/traces/{test_id}').status + + +def test_get_trace(client, mocker): + mocker.patch.object(DB, 'fetch_one', return_value={'name': 'test trace'}) + res = client.get(f'/v2/traces/{test_id}') + assert 'name' in res.json['content'] + assert '200' in res.status -- cgit v1.2.3