summaryrefslogtreecommitdiff
path: root/web-server/opendc/api
diff options
context:
space:
mode:
Diffstat (limited to 'web-server/opendc/api')
-rw-r--r--web-server/opendc/api/v2/traces/traceId/endpoint.py22
-rw-r--r--web-server/opendc/api/v2/traces/traceId/test_endpoint.py13
2 files changed, 18 insertions, 17 deletions
diff --git a/web-server/opendc/api/v2/traces/traceId/endpoint.py b/web-server/opendc/api/v2/traces/traceId/endpoint.py
index f6442a31..672e256c 100644
--- a/web-server/opendc/api/v2/traces/traceId/endpoint.py
+++ b/web-server/opendc/api/v2/traces/traceId/endpoint.py
@@ -1,26 +1,14 @@
-from opendc.models_old.trace import Trace
-from opendc.util import exceptions
+from opendc.models.trace import Trace
from opendc.util.rest import Response
def GET(request):
"""Get this Trace."""
- # Make sure required parameters are there
+ request.check_required_parameters(path={'traceId': 'string'})
- try:
- request.check_required_parameters(path={'traceId': 'int'})
+ trace = Trace.from_id(request.params_path['traceId'])
- except exceptions.ParameterError as e:
- return Response(400, str(e))
+ trace.check_exists()
- # Instantiate a Trace and make sure it exists
-
- trace = Trace.from_primary_key((request.params_path['traceId'], ))
-
- if not trace.exists():
- return Response(404, '{} not found.'.format(trace))
-
- # Return this Trace
-
- return Response(200, 'Successfully retrieved {}.'.format(trace), trace.to_JSON())
+ return Response(200, f'Successfully retrieved trace.', trace.obj)
diff --git a/web-server/opendc/api/v2/traces/traceId/test_endpoint.py b/web-server/opendc/api/v2/traces/traceId/test_endpoint.py
new file mode 100644
index 00000000..56792ca9
--- /dev/null
+++ b/web-server/opendc/api/v2/traces/traceId/test_endpoint.py
@@ -0,0 +1,13 @@
+from opendc.util.database import DB
+
+
+def test_get_trace_non_existing(client, mocker):
+ mocker.patch.object(DB, 'fetch_one', return_value=None)
+ assert '404' in client.get('/api/v2/traces/1').status
+
+
+def test_get_trace(client, mocker):
+ mocker.patch.object(DB, 'fetch_one', return_value={'name': 'test trace'})
+ res = client.get('/api/v2/traces/1')
+ assert 'name' in res.json['content']
+ assert '200' in res.status