summaryrefslogtreecommitdiff
path: root/web-server/opendc
diff options
context:
space:
mode:
Diffstat (limited to 'web-server/opendc')
-rw-r--r--web-server/opendc/api/v2/topologies/topologyId/endpoint.py15
-rw-r--r--web-server/opendc/api/v2/topologies/topologyId/test_endpoint.py11
2 files changed, 26 insertions, 0 deletions
diff --git a/web-server/opendc/api/v2/topologies/topologyId/endpoint.py b/web-server/opendc/api/v2/topologies/topologyId/endpoint.py
index a8061d69..f0c12876 100644
--- a/web-server/opendc/api/v2/topologies/topologyId/endpoint.py
+++ b/web-server/opendc/api/v2/topologies/topologyId/endpoint.py
@@ -13,3 +13,18 @@ def GET(request):
topology.check_user_access(request.google_id, False)
return Response(200, 'Successfully retrieved topology.', topology.obj)
+
+def PUT(request):
+ """Update this topology"""
+ print(request)
+
+def DELETE(request):
+ """Delete this topology"""
+ request.check_required_parameters(path={'topologyId': 'int'})
+
+ topology = Topology.from_id(request.params_path['topologyId'])
+
+ topology.check_exists()
+ topology.delete()
+
+ return Response(200, 'Successfully deleted topology.', topology.obj)
diff --git a/web-server/opendc/api/v2/topologies/topologyId/test_endpoint.py b/web-server/opendc/api/v2/topologies/topologyId/test_endpoint.py
index 48bd6846..6243cc55 100644
--- a/web-server/opendc/api/v2/topologies/topologyId/test_endpoint.py
+++ b/web-server/opendc/api/v2/topologies/topologyId/test_endpoint.py
@@ -51,3 +51,14 @@ PUT /topologies/{topologyId}
'''
DELETE /topologies/{topologyId}
'''
+
+def test_delete_topology(client, mocker):
+ mocker.patch.object(DB, 'fetch_one', return_value={'_id': '1'})
+ mocker.patch.object(DB, 'delete_one', return_value=None)
+ res = client.delete('/api/v2/topologies/1')
+ assert '200' in res.status
+
+def test_delete_nonexistent_topology(client, mocker):
+ mocker.patch.object(DB, 'fetch_one', return_value=None)
+ assert '404' in client.delete('/api/v2/topologies/1').status
+