diff options
Diffstat (limited to 'web-server/opendc')
| -rw-r--r-- | web-server/opendc/api/v2/topologies/topologyId/endpoint.py | 15 | ||||
| -rw-r--r-- | web-server/opendc/api/v2/topologies/topologyId/test_endpoint.py | 11 |
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 + |
