From bfba44e5b8c5475f33edf150f2b8f1cfb9f1844c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Fri, 8 Jul 2016 10:31:08 +0200 Subject: [PATCH] Merged test_home_project.py and test_bcloud_home_project.py --- tests/test_bcloud_home_project.py | 83 +++++++++++++++++++++++++++++ tests/test_home_project.py | 86 ------------------------------- 2 files changed, 83 insertions(+), 86 deletions(-) delete mode 100644 tests/test_home_project.py diff --git a/tests/test_bcloud_home_project.py b/tests/test_bcloud_home_project.py index 9a7f6a3b..d3896544 100644 --- a/tests/test_bcloud_home_project.py +++ b/tests/test_bcloud_home_project.py @@ -334,3 +334,86 @@ class HomeProjectTest(AbstractPillarTest): self.assertEqual(before_delete_json_proj['_id'], after_delete_json_proj['_id']) + + +class HomeProjectUserChangedRoleTest(AbstractPillarTest): + def test_without_home_project(self): + from application.modules.blender_cloud import home_project + + self.user_id = self.create_user() + + with self.app.test_request_context(): + changed = home_project.user_changed_role(None, {'_id': self.user_id}) + self.assertFalse(changed) + + # Shouldn't do anything, shouldn't crash either. + + def test_already_subscriber_role(self): + from application.modules.blender_cloud import home_project + from application.utils.authentication import validate_token + + self.user_id = self.create_user(roles=set('subscriber')) + self.create_valid_auth_token(self.user_id, 'token') + + with self.app.test_request_context(headers={'Authorization': self.make_header('token')}): + validate_token() + + home_proj = home_project.create_home_project(self.user_id, write_access=True) + changed = home_project.user_changed_role(None, {'_id': self.user_id, + 'roles': ['subscriber']}) + self.assertFalse(changed) + + # The home project should still be writable, so we should be able to create a node. + self.create_test_node(home_proj['_id']) + + def test_granting_subscriber_role(self): + from application.modules.blender_cloud import home_project + from application.utils.authentication import validate_token + + self.user_id = self.create_user(roles=set()) + self.create_valid_auth_token(self.user_id, 'token') + + with self.app.test_request_context(headers={'Authorization': self.make_header('token')}): + validate_token() + + home_proj = home_project.create_home_project(self.user_id, write_access=False) + changed = home_project.user_changed_role(None, {'_id': self.user_id, + 'roles': ['subscriber']}) + self.assertTrue(changed) + + # The home project should be writable, so we should be able to create a node. + self.create_test_node(home_proj['_id']) + + def test_revoking_subscriber_role(self): + from application.modules.blender_cloud import home_project + from application.utils.authentication import validate_token + + self.user_id = self.create_user(roles=set('subscriber')) + self.create_valid_auth_token(self.user_id, 'token') + + with self.app.test_request_context(headers={'Authorization': self.make_header('token')}): + validate_token() + + home_proj = home_project.create_home_project(self.user_id, write_access=True) + changed = home_project.user_changed_role(None, {'_id': self.user_id, + 'roles': []}) + self.assertTrue(changed) + + # The home project should NOT be writable, so we should NOT be able to create a node. + self.create_test_node(home_proj['_id'], 403) + + def create_test_node(self, project_id, status_code=201): + from application.utils import dumps + + node = { + 'project': project_id, + 'node_type': 'group', + 'name': 'test group node', + 'user': self.user_id, + 'properties': {}, + } + + resp = self.client.post('/nodes', data=dumps(node), + headers={'Authorization': self.make_header('token'), + 'Content-Type': 'application/json'}) + self.assertEqual(status_code, resp.status_code, resp.data) diff --git a/tests/test_home_project.py b/tests/test_home_project.py deleted file mode 100644 index e477dea8..00000000 --- a/tests/test_home_project.py +++ /dev/null @@ -1,86 +0,0 @@ -# -*- encoding: utf-8 -*- - -from common_test_class import AbstractPillarTest - - -class HomeProjectUserChangedRoleTest(AbstractPillarTest): - def test_without_home_project(self): - from application.modules.blender_cloud import home_project - - self.user_id = self.create_user() - - with self.app.test_request_context(): - changed = home_project.user_changed_role(None, {'_id': self.user_id}) - self.assertFalse(changed) - - # Shouldn't do anything, shouldn't crash either. - - def test_already_subscriber_role(self): - from application.modules.blender_cloud import home_project - from application.utils.authentication import validate_token - - self.user_id = self.create_user(roles=set('subscriber')) - self.create_valid_auth_token(self.user_id, 'token') - - with self.app.test_request_context(headers={'Authorization': self.make_header('token')}): - validate_token() - - home_proj = home_project.create_home_project(self.user_id, write_access=True) - changed = home_project.user_changed_role(None, {'_id': self.user_id, - 'roles': ['subscriber']}) - self.assertFalse(changed) - - # The home project should still be writable, so we should be able to create a node. - self.create_test_node(home_proj['_id']) - - def test_granting_subscriber_role(self): - from application.modules.blender_cloud import home_project - from application.utils.authentication import validate_token - - self.user_id = self.create_user(roles=set()) - self.create_valid_auth_token(self.user_id, 'token') - - with self.app.test_request_context(headers={'Authorization': self.make_header('token')}): - validate_token() - - home_proj = home_project.create_home_project(self.user_id, write_access=False) - changed = home_project.user_changed_role(None, {'_id': self.user_id, - 'roles': ['subscriber']}) - self.assertTrue(changed) - - # The home project should be writable, so we should be able to create a node. - self.create_test_node(home_proj['_id']) - - def test_revoking_subscriber_role(self): - from application.modules.blender_cloud import home_project - from application.utils.authentication import validate_token - - self.user_id = self.create_user(roles=set('subscriber')) - self.create_valid_auth_token(self.user_id, 'token') - - with self.app.test_request_context(headers={'Authorization': self.make_header('token')}): - validate_token() - - home_proj = home_project.create_home_project(self.user_id, write_access=True) - changed = home_project.user_changed_role(None, {'_id': self.user_id, - 'roles': []}) - self.assertTrue(changed) - - # The home project should NOT be writable, so we should NOT be able to create a node. - self.create_test_node(home_proj['_id'], 403) - - def create_test_node(self, project_id, status_code=201): - from application.utils import dumps - - node = { - 'project': project_id, - 'node_type': 'group', - 'name': 'test group node', - 'user': self.user_id, - 'properties': {}, - } - - resp = self.client.post('/nodes', data=dumps(node), - headers={'Authorization': self.make_header('token'), - 'Content-Type': 'application/json'}) - self.assertEqual(status_code, resp.status_code, resp.data)