summaryrefslogtreecommitdiff
path: root/web-server/opendc
diff options
context:
space:
mode:
authorGeorgios Andreadis <info@gandreadis.com>2020-06-30 17:26:24 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-08-24 19:44:37 +0200
commitabb91a93c40ef3577aa953cf6e8c252593e082d4 (patch)
tree0f589ec4852182bbc797240a216af70194d95562 /web-server/opendc
parentcac980546e15882a232ce234cbde3e0cda693352 (diff)
parentc78432a639979283b309a03f41589b9823bcaaf7 (diff)
Merge branch 'feature/mongodb-migration' of https://github.com/atlarge-research/opendc-dev into feature/mongodb-migration
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
+