summaryrefslogtreecommitdiff
path: root/web-server/opendc/api/v2/experiments/experimentId
diff options
context:
space:
mode:
Diffstat (limited to 'web-server/opendc/api/v2/experiments/experimentId')
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/__init__.py0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/endpoint.py56
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/test_endpoint.py133
3 files changed, 0 insertions, 189 deletions
diff --git a/web-server/opendc/api/v2/experiments/experimentId/__init__.py b/web-server/opendc/api/v2/experiments/experimentId/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/web-server/opendc/api/v2/experiments/experimentId/__init__.py
+++ /dev/null
diff --git a/web-server/opendc/api/v2/experiments/experimentId/endpoint.py b/web-server/opendc/api/v2/experiments/experimentId/endpoint.py
deleted file mode 100644
index 6706dc57..00000000
--- a/web-server/opendc/api/v2/experiments/experimentId/endpoint.py
+++ /dev/null
@@ -1,56 +0,0 @@
-from opendc.models.experiment import Experiment
-from opendc.models.project import Project
-from opendc.util.rest import Response
-
-
-def GET(request):
- """Get this Experiment."""
-
- request.check_required_parameters(path={'experimentId': 'string'})
-
- experiment = Experiment.from_id(request.params_path['experimentId'])
-
- experiment.check_exists()
- experiment.check_user_access(request.google_id, False)
-
- return Response(200, 'Successfully retrieved Experiment.', experiment.obj)
-
-
-def PUT(request):
- """Update this Experiments name."""
-
- request.check_required_parameters(path={'experimentId': 'string'}, body={'experiment': {
- 'name': 'string',
- }})
-
- experiment = Experiment.from_id(request.params_path['experimentId'])
-
- experiment.check_exists()
- experiment.check_user_access(request.google_id, True)
-
- experiment.set_property('name', request.params_body['experiment']['name'])
-
- experiment.update()
-
- return Response(200, 'Successfully updated experiment.', experiment.obj)
-
-
-def DELETE(request):
- """Delete this Experiment."""
-
- request.check_required_parameters(path={'experimentId': 'string'})
-
- experiment = Experiment.from_id(request.params_path['experimentId'])
-
- experiment.check_exists()
- experiment.check_user_access(request.google_id, True)
-
- project = Project.from_id(experiment.obj['projectId'])
- project.check_exists()
- if request.params_path['experimentId'] in project.obj['experimentIds']:
- project.obj['experimentIds'].remove(request.params_path['experimentId'])
- project.update()
-
- old_object = experiment.delete()
-
- return Response(200, 'Successfully deleted experiment.', old_object)
diff --git a/web-server/opendc/api/v2/experiments/experimentId/test_endpoint.py b/web-server/opendc/api/v2/experiments/experimentId/test_endpoint.py
deleted file mode 100644
index a284cf32..00000000
--- a/web-server/opendc/api/v2/experiments/experimentId/test_endpoint.py
+++ /dev/null
@@ -1,133 +0,0 @@
-from opendc.util.database import DB
-
-
-def test_get_experiment_non_existing(client, mocker):
- mocker.patch.object(DB, 'fetch_one', return_value=None)
- assert '404' in client.get('/api/v2/experiments/1').status
-
-
-def test_get_experiment_no_authorizations(client, mocker):
- mocker.patch.object(DB, 'fetch_one', return_value={'projectId': '1', 'authorizations': []})
- res = client.get('/api/v2/experiments/1')
- assert '403' in res.status
-
-
-def test_get_experiment_not_authorized(client, mocker):
- mocker.patch.object(DB,
- 'fetch_one',
- return_value={
- 'projectId': '1',
- '_id': '1',
- 'authorizations': [{
- 'projectId': '2',
- 'authorizationLevel': 'OWN'
- }]
- })
- res = client.get('/api/v2/experiments/1')
- assert '403' in res.status
-
-
-def test_get_experiment(client, mocker):
- mocker.patch.object(DB,
- 'fetch_one',
- return_value={
- 'projectId': '1',
- '_id': '1',
- 'authorizations': [{
- 'projectId': '1',
- 'authorizationLevel': 'EDIT'
- }]
- })
- res = client.get('/api/v2/experiments/1')
- assert '200' in res.status
-
-
-def test_update_experiment_missing_parameter(client):
- assert '400' in client.put('/api/v2/experiments/1').status
-
-
-def test_update_experiment_non_existing(client, mocker):
- mocker.patch.object(DB, 'fetch_one', return_value=None)
- assert '404' in client.put('/api/v2/experiments/1', json={
- 'experiment': {
- 'name': 'test',
- }
- }).status
-
-
-def test_update_experiment_not_authorized(client, mocker):
- mocker.patch.object(DB,
- 'fetch_one',
- return_value={
- '_id': '1',
- 'projectId': '1',
- 'authorizations': [{
- 'projectId': '1',
- 'authorizationLevel': 'VIEW'
- }]
- })
- mocker.patch.object(DB, 'update', return_value={})
- assert '403' in client.put('/api/v2/experiments/1', json={
- 'experiment': {
- 'name': 'test',
- }
- }).status
-
-
-def test_update_experiment(client, mocker):
- mocker.patch.object(DB,
- 'fetch_one',
- return_value={
- '_id': '1',
- 'projectId': '1',
- 'authorizations': [{
- 'projectId': '1',
- 'authorizationLevel': 'OWN'
- }]
- })
- mocker.patch.object(DB, 'update', return_value={})
-
- res = client.put('/api/v2/experiments/1', json={'experiment': {
- 'name': 'test',
- }})
- assert '200' in res.status
-
-
-def test_delete_project_non_existing(client, mocker):
- mocker.patch.object(DB, 'fetch_one', return_value=None)
- assert '404' in client.delete('/api/v2/experiments/1').status
-
-
-def test_delete_project_different_user(client, mocker):
- mocker.patch.object(DB,
- 'fetch_one',
- return_value={
- '_id': '1',
- 'projectId': '1',
- 'googleId': 'other_test',
- 'authorizations': [{
- 'projectId': '1',
- 'authorizationLevel': 'VIEW'
- }]
- })
- mocker.patch.object(DB, 'delete_one', return_value=None)
- assert '403' in client.delete('/api/v2/experiments/1').status
-
-
-def test_delete_project(client, mocker):
- mocker.patch.object(DB,
- 'fetch_one',
- return_value={
- '_id': '1',
- 'projectId': '1',
- 'googleId': 'test',
- 'experimentIds': ['1'],
- 'authorizations': [{
- 'projectId': '1',
- 'authorizationLevel': 'OWN'
- }]
- })
- mocker.patch.object(DB, 'delete_one', return_value={})
- mocker.patch.object(DB, 'update', return_value=None)
- res = client.delete('/api/v2/experiments/1')
- assert '200' in res.status