From 02997b2522b9c66072b16f1425c02e81e0085e3c Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Tue, 14 Jul 2020 21:10:56 +0200 Subject: Rename web-server to API This change renames the web-server component to API in order to be more descriptive of its role. The OpenDC API bridges between the frontend on one side and the database and simulator on the other side. --- web-server/opendc/api/v2/scenarios/__init__.py | 0 .../opendc/api/v2/scenarios/scenarioId/__init__.py | 0 .../opendc/api/v2/scenarios/scenarioId/endpoint.py | 57 --------- .../api/v2/scenarios/scenarioId/test_endpoint.py | 140 --------------------- 4 files changed, 197 deletions(-) delete mode 100644 web-server/opendc/api/v2/scenarios/__init__.py delete mode 100644 web-server/opendc/api/v2/scenarios/scenarioId/__init__.py delete mode 100644 web-server/opendc/api/v2/scenarios/scenarioId/endpoint.py delete mode 100644 web-server/opendc/api/v2/scenarios/scenarioId/test_endpoint.py (limited to 'web-server/opendc/api/v2/scenarios') diff --git a/web-server/opendc/api/v2/scenarios/__init__.py b/web-server/opendc/api/v2/scenarios/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/web-server/opendc/api/v2/scenarios/scenarioId/__init__.py b/web-server/opendc/api/v2/scenarios/scenarioId/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/web-server/opendc/api/v2/scenarios/scenarioId/endpoint.py b/web-server/opendc/api/v2/scenarios/scenarioId/endpoint.py deleted file mode 100644 index 02d39063..00000000 --- a/web-server/opendc/api/v2/scenarios/scenarioId/endpoint.py +++ /dev/null @@ -1,57 +0,0 @@ -from opendc.models.scenario import Scenario -from opendc.models.portfolio import Portfolio -from opendc.util.rest import Response - - -def GET(request): - """Get this Scenario.""" - - request.check_required_parameters(path={'scenarioId': 'string'}) - - scenario = Scenario.from_id(request.params_path['scenarioId']) - - scenario.check_exists() - scenario.check_user_access(request.google_id, False) - - return Response(200, 'Successfully retrieved scenario.', scenario.obj) - - -def PUT(request): - """Update this Scenarios name.""" - - request.check_required_parameters(path={'scenarioId': 'string'}, body={'scenario': { - 'name': 'string', - }}) - - scenario = Scenario.from_id(request.params_path['scenarioId']) - - scenario.check_exists() - scenario.check_user_access(request.google_id, True) - - scenario.set_property('name', - request.params_body['scenario']['name']) - - scenario.update() - - return Response(200, 'Successfully updated scenario.', scenario.obj) - - -def DELETE(request): - """Delete this Scenario.""" - - request.check_required_parameters(path={'scenarioId': 'string'}) - - scenario = Scenario.from_id(request.params_path['scenarioId']) - - scenario.check_exists() - scenario.check_user_access(request.google_id, True) - - portfolio = Portfolio.from_id(scenario.obj['portfolioId']) - portfolio.check_exists() - if request.params_path['scenarioId'] in portfolio.obj['scenarioIds']: - portfolio.obj['scenarioIds'].remove(request.params_path['scenarioId']) - portfolio.update() - - old_object = scenario.delete() - - return Response(200, 'Successfully deleted scenario.', old_object) diff --git a/web-server/opendc/api/v2/scenarios/scenarioId/test_endpoint.py b/web-server/opendc/api/v2/scenarios/scenarioId/test_endpoint.py deleted file mode 100644 index 09b7d0c0..00000000 --- a/web-server/opendc/api/v2/scenarios/scenarioId/test_endpoint.py +++ /dev/null @@ -1,140 +0,0 @@ -from opendc.util.database import DB - - -def test_get_scenario_non_existing(client, mocker): - mocker.patch.object(DB, 'fetch_one', return_value=None) - assert '404' in client.get('/api/v2/scenarios/1').status - - -def test_get_scenario_no_authorizations(client, mocker): - mocker.patch.object(DB, 'fetch_one', return_value={ - 'portfolioId': '1', - 'authorizations': [] - }) - res = client.get('/api/v2/scenarios/1') - assert '403' in res.status - - -def test_get_scenario_not_authorized(client, mocker): - mocker.patch.object(DB, - 'fetch_one', - return_value={ - 'portfolioId': '1', - '_id': '1', - 'authorizations': [{ - 'projectId': '2', - 'authorizationLevel': 'OWN' - }] - }) - res = client.get('/api/v2/scenarios/1') - assert '403' in res.status - - -def test_get_scenario(client, mocker): - mocker.patch.object(DB, - 'fetch_one', - return_value={ - 'portfolioId': '1', - '_id': '1', - 'authorizations': [{ - 'projectId': '1', - 'authorizationLevel': 'EDIT' - }] - }) - res = client.get('/api/v2/scenarios/1') - assert '200' in res.status - - -def test_update_scenario_missing_parameter(client): - assert '400' in client.put('/api/v2/scenarios/1').status - - -def test_update_scenario_non_existing(client, mocker): - mocker.patch.object(DB, 'fetch_one', return_value=None) - assert '404' in client.put('/api/v2/scenarios/1', json={ - 'scenario': { - 'name': 'test', - } - }).status - - -def test_update_scenario_not_authorized(client, mocker): - mocker.patch.object(DB, - 'fetch_one', - return_value={ - '_id': '1', - 'portfolioId': '1', - 'authorizations': [{ - 'projectId': '1', - 'authorizationLevel': 'VIEW' - }] - }) - mocker.patch.object(DB, 'update', return_value={}) - assert '403' in client.put('/api/v2/scenarios/1', json={ - 'scenario': { - 'name': 'test', - } - }).status - - -def test_update_scenario(client, mocker): - mocker.patch.object(DB, - 'fetch_one', - return_value={ - '_id': '1', - 'portfolioId': '1', - 'authorizations': [{ - 'projectId': '1', - 'authorizationLevel': 'OWN' - }], - 'targets': { - 'enabledMetrics': [], - 'repeatsPerScenario': 1 - } - }) - mocker.patch.object(DB, 'update', return_value={}) - - res = client.put('/api/v2/scenarios/1', json={'scenario': { - '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/scenarios/1').status - - -def test_delete_project_different_user(client, mocker): - mocker.patch.object(DB, - 'fetch_one', - return_value={ - '_id': '1', - 'portfolioId': '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/scenarios/1').status - - -def test_delete_project(client, mocker): - mocker.patch.object(DB, - 'fetch_one', - return_value={ - '_id': '1', - 'portfolioId': '1', - 'googleId': 'test', - 'scenarioIds': ['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/scenarios/1') - assert '200' in res.status -- cgit v1.2.3