summaryrefslogtreecommitdiff
path: root/web-server/opendc/api/v2/prefabs/prefabId/test_endpoint.py
diff options
context:
space:
mode:
authorjc0b <j@jc0b.computer>2020-07-10 15:18:44 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-08-24 19:48:00 +0200
commit4befa57993831274ad7e6ca62f96aa582f81cc5d (patch)
tree697f688b084a5339be80184361a39af592d20b41 /web-server/opendc/api/v2/prefabs/prefabId/test_endpoint.py
parent0e6283dafb3378a4e86de330f3f53aa100b757de (diff)
Finished prefabs API
Diffstat (limited to 'web-server/opendc/api/v2/prefabs/prefabId/test_endpoint.py')
-rw-r--r--web-server/opendc/api/v2/prefabs/prefabId/test_endpoint.py151
1 files changed, 86 insertions, 65 deletions
diff --git a/web-server/opendc/api/v2/prefabs/prefabId/test_endpoint.py b/web-server/opendc/api/v2/prefabs/prefabId/test_endpoint.py
index c34bf6fa..b25c881d 100644
--- a/web-server/opendc/api/v2/prefabs/prefabId/test_endpoint.py
+++ b/web-server/opendc/api/v2/prefabs/prefabId/test_endpoint.py
@@ -1,41 +1,57 @@
from opendc.util.database import DB
+from unittest.mock import Mock
def test_get_prefab_non_existing(client, mocker):
mocker.patch.object(DB, 'fetch_one', return_value=None)
assert '404' in client.get('/api/v2/prefabs/1').status
-
-def test_get_prefab_no_authorizations(client, mocker):
- mocker.patch.object(DB, 'fetch_one', return_value={'authorizations': []})
+def test_get_private_prefab_not_authorized(client, mocker):
+ DB.fetch_one = Mock()
+ DB.fetch_one.side_effect = [{
+ '_id': '1',
+ 'name': 'test prefab',
+ 'authorId': '2',
+ 'visibility': 'private',
+ 'rack': {}
+ },
+ {
+ '_id': '1'
+ }
+ ]
res = client.get('/api/v2/prefabs/1')
assert '403' in res.status
-def test_get_prefab_not_authorized(client, mocker):
- mocker.patch.object(DB,
- 'fetch_one',
- return_value={
+def test_get_private_prefab(client, mocker):
+ DB.fetch_one = Mock()
+ DB.fetch_one.side_effect = [{
'_id': '1',
- 'authorizations': [{
- 'prefabId': '2',
- 'authorizationLevel': 'OWN'
- }]
- })
+ 'name': 'test prefab',
+ 'authorId': '1',
+ 'visibility': 'private',
+ 'rack': {}
+ },
+ {
+ '_id': '1'
+ }
+ ]
res = client.get('/api/v2/prefabs/1')
- assert '403' in res.status
-
+ assert '200' in res.status
-def test_get_prefab(client, mocker):
- mocker.patch.object(DB,
- 'fetch_one',
- return_value={
+def test_get_public_prefab(client, mocker):
+ DB.fetch_one = Mock()
+ DB.fetch_one.side_effect = [{
'_id': '1',
- 'authorizations': [{
- 'prefabId': '1',
- 'authorizationLevel': 'EDIT'
- }]
- })
+ 'name': 'test prefab',
+ 'authorId': '2',
+ 'visibility': 'public',
+ 'rack': {}
+ },
+ {
+ '_id': '1'
+ }
+ ]
res = client.get('/api/v2/prefabs/1')
assert '200' in res.status
@@ -50,32 +66,37 @@ def test_update_prefab_non_existing(client, mocker):
def test_update_prefab_not_authorized(client, mocker):
- mocker.patch.object(DB,
- 'fetch_one',
- return_value={
+ DB.fetch_one = Mock()
+ DB.fetch_one.side_effect = [{
'_id': '1',
- 'authorizations': [{
- 'prefabId': '1',
- 'authorizationLevel': 'VIEW'
- }]
- })
+ 'name': 'test prefab',
+ 'authorId': '2',
+ 'visibility': 'private',
+ 'rack': {}
+ },
+ {
+ '_id': '1'
+ }
+ ]
mocker.patch.object(DB, 'update', return_value={})
- assert '403' in client.put('/api/v2/prefabs/1', json={'prefab': {'name': 'S'}}).status
+ assert '403' in client.put('/api/v2/prefabs/1', json={'prefab': {'name': 'test prefab', 'rack' : {}}}).status
def test_update_prefab(client, mocker):
- mocker.patch.object(DB,
- 'fetch_one',
- return_value={
+ DB.fetch_one = Mock()
+ DB.fetch_one.side_effect = [{
'_id': '1',
- 'authorizations': [{
- 'prefabId': '1',
- 'authorizationLevel': 'OWN'
- }]
- })
+ 'name': 'test prefab',
+ 'authorId': '1',
+ 'visibility': 'private',
+ 'rack': {}
+ },
+ {
+ '_id': '1'
+ }
+ ]
mocker.patch.object(DB, 'update', return_value={})
-
- res = client.put('/api/v2/prefabs/1', json={'prefab': {'name': 'S'}})
+ res = client.put('/api/v2/prefabs/1', json={'prefab': {'name': 'test prefab', 'rack' : {}}})
assert '200' in res.status
@@ -85,35 +106,35 @@ def test_delete_prefab_non_existing(client, mocker):
def test_delete_prefab_different_user(client, mocker):
- mocker.patch.object(DB,
- 'fetch_one',
- return_value={
+ DB.fetch_one = Mock()
+ DB.fetch_one.side_effect = [{
'_id': '1',
- 'googleId': 'other_test',
- 'authorizations': [{
- 'prefabId': '1',
- 'authorizationLevel': 'VIEW'
- }],
- 'topologyIds': []
- })
+ 'name': 'test prefab',
+ 'authorId': '2',
+ 'visibility': 'private',
+ 'rack': {}
+ },
+ {
+ '_id': '1'
+ }
+ ]
mocker.patch.object(DB, 'delete_one', return_value=None)
assert '403' in client.delete('/api/v2/prefabs/1').status
def test_delete_prefab(client, mocker):
- mocker.patch.object(DB,
- 'fetch_one',
- return_value={
+ DB.fetch_one = Mock()
+ DB.fetch_one.side_effect = [{
'_id': '1',
- 'googleId': 'test',
- 'authorizations': [{
- 'prefabId': '1',
- 'authorizationLevel': 'OWN'
- }],
- 'topologyIds': [],
- 'experimentIds': [],
- })
- mocker.patch.object(DB, 'update', return_value=None)
- mocker.patch.object(DB, 'delete_one', return_value={'googleId': 'test'})
+ 'name': 'test prefab',
+ 'authorId': '1',
+ 'visibility': 'private',
+ 'rack': {}
+ },
+ {
+ '_id': '1'
+ }
+ ]
+ mocker.patch.object(DB, 'delete_one', return_value={'prefab': {'name': 'name'}})
res = client.delete('/api/v2/prefabs/1')
assert '200' in res.status