def test_new_project_action_rerun_post_approve(self): """ Tests the new project action for an existing user. """ user = mock.Mock() user.id = "test_user_id" user.name = "test_user" user.domain = 'default' project = mock.Mock() project.id = "parent_project" project.domain = "default" setup_temp_cache({project.id: project}, {user.id: user}) task = Task.objects.create(ip_address="0.0.0.0", keystone_user={ "user_id": "test_user_id", "project_id": "parent_project", "project_domain_id": 'default' }) data = { 'domain_id': 'default', 'parent_id': "parent_project", 'project_name': 'test_project', } action = NewProjectAction(data, task=task, order=1) action.pre_approve() self.assertEquals(action.valid, True) action.post_approve() self.assertEquals(action.valid, True) self.assertEquals(tests.temp_cache['projects']['test_project'].name, 'test_project') self.assertEquals(tests.temp_cache['projects']['test_project'].parent, 'parent_project') action.post_approve() # Nothing should change self.assertEquals(action.valid, True) self.assertEquals(tests.temp_cache['projects']['test_project'].name, 'test_project') self.assertEquals(tests.temp_cache['projects']['test_project'].parent, 'parent_project') project = tests.temp_cache['projects']['test_project'] self.assertEquals( sorted(project.roles["test_user_id"]), sorted([ '_member_', 'project_admin', 'project_mod', 'heat_stack_owner' ])) action.submit({}) self.assertEquals(action.valid, True)
def test_new_project_action(self): """ Tests the new project action for an existing user. """ project = fake_clients.FakeProject(name="parent_project") user = fake_clients.FakeUser(name="*****@*****.**", password="******", email="*****@*****.**") setup_identity_cache(projects=[project], users=[user]) task = Task.objects.create( keystone_user={ "user_id": user.id, "project_id": project.id, "project_domain_id": "default", }) data = { "domain_id": "default", "parent_id": project.id, "project_name": "test_project", "description": "", } action = NewProjectAction(data, task=task, order=1) action.prepare() self.assertEqual(action.valid, True) action.approve() self.assertEqual(action.valid, True) new_project = fake_clients.identity_cache["new_projects"][0] self.assertEqual(new_project.name, "test_project") self.assertEqual(new_project.parent_id, project.id) fake_client = fake_clients.FakeManager() roles = fake_client._get_roles_as_names(user, new_project) self.assertEqual( sorted(roles), sorted( ["member", "project_admin", "project_mod", "heat_stack_owner"]), ) action.submit({}) self.assertEqual(action.valid, True)
def test_new_project_action(self): """ Tests the new project action for an existing user. """ project = fake_clients.FakeProject(name="parent_project") user = fake_clients.FakeUser(name="*****@*****.**", password="******", email="*****@*****.**") setup_identity_cache(projects=[project], users=[user]) task = Task.objects.create(ip_address="0.0.0.0", keystone_user={ "user_id": user.id, "project_id": project.id, "project_domain_id": 'default' }) data = { 'domain_id': 'default', 'parent_id': project.id, 'project_name': 'test_project', 'description': '', } action = NewProjectAction(data, task=task, order=1) action.pre_approve() self.assertEqual(action.valid, True) action.post_approve() self.assertEqual(action.valid, True) new_project = fake_clients.identity_cache['new_projects'][0] self.assertEqual(new_project.name, 'test_project') self.assertEqual(new_project.parent_id, project.id) fake_client = fake_clients.FakeManager() roles = fake_client._get_roles_as_names(user, new_project) self.assertEqual( sorted(roles), sorted([ '_member_', 'project_admin', 'project_mod', 'heat_stack_owner' ])) action.submit({}) self.assertEqual(action.valid, True)
def test_new_project_action_no_parent_id(self): """ New project action where there is no specified parent id """ user = mock.Mock() user.id = "test_user_id" user.name = "test_user" user.domain = 'default' project = mock.Mock() project.id = "parent_project" project.domain = "default" setup_temp_cache({project.id: project}, {user.id: user}) task = Task.objects.create(ip_address="0.0.0.0", keystone_user={ "user_id": "test_user_id", "project_id": "parent_project", "project_domain_id": 'default' }) data = { 'domain_id': 'default', 'parent_id': None, 'project_name': 'test_project', } action = NewProjectAction(data, task=task, order=1) action.pre_approve() self.assertEquals(action.valid, True) action.post_approve() self.assertEquals(action.valid, True) self.assertEquals(tests.temp_cache['projects']['test_project'].parent, 'default') action.submit({}) self.assertEquals(action.valid, True)
def test_new_project_action_no_parent_id(self): """ New project action where there is no specified parent id """ project = fake_clients.FakeProject(name="parent_project") user = fake_clients.FakeUser(name="*****@*****.**", password="******", email="*****@*****.**") setup_identity_cache(projects=[project], users=[user]) task = Task.objects.create( keystone_user={ "user_id": user.id, "project_id": project.id, "project_domain_id": "default", }) data = { "domain_id": "default", "parent_id": None, "project_name": "test_project", "description": "", } action = NewProjectAction(data, task=task, order=1) action.prepare() self.assertEqual(action.valid, True) action.approve() self.assertEqual(action.valid, True) new_project = fake_clients.identity_cache["new_projects"][0] self.assertEqual(new_project.name, "test_project") self.assertEqual(new_project.parent_id, None) action.submit({}) self.assertEqual(action.valid, True)
def test_new_project_action_no_parent_id(self): """ New project action where there is no specified parent id """ project = fake_clients.FakeProject(name="parent_project") user = fake_clients.FakeUser(name="*****@*****.**", password="******", email="*****@*****.**") setup_identity_cache(projects=[project], users=[user]) task = Task.objects.create(ip_address="0.0.0.0", keystone_user={ "user_id": user.id, "project_id": project.id, "project_domain_id": 'default' }) data = { 'domain_id': 'default', 'parent_id': None, 'project_name': 'test_project', 'description': '', } action = NewProjectAction(data, task=task, order=1) action.pre_approve() self.assertEqual(action.valid, True) action.post_approve() self.assertEqual(action.valid, True) new_project = fake_clients.identity_cache['new_projects'][0] self.assertEqual(new_project.name, 'test_project') self.assertEqual(new_project.parent_id, None) action.submit({}) self.assertEqual(action.valid, True)
def test_new_project_action_wrong_domain_id(self): """ New project action where specifed domain id is not the same as the current user's domain id """ user = mock.Mock() user.id = "test_user_id" user.name = "test_user" user.domain = 'default' project = mock.Mock() project.id = "parent_project" project.domain = "default" setup_temp_cache({project.id: project}, {user.id: user}) task = Task.objects.create(ip_address="0.0.0.0", keystone_user={ "user_id": "test_user_id", "project_id": "parent_project", "project_domain_id": 'default' }) data = { 'domain_id': 'notdefault', 'parent_id': "parent_project", 'project_name': 'test_project', } action = NewProjectAction(data, task=task, order=1) action.pre_approve() self.assertEquals(action.valid, False) action.post_approve() self.assertEquals(action.valid, False) action.submit({}) self.assertEquals(action.valid, False)
def test_new_project_action_wrong_domain_id(self): """ New project action where specifed domain id is not the same as the current user's domain id """ project = fake_clients.FakeProject(name="parent_project") user = fake_clients.FakeUser(name="*****@*****.**", password="******", email="*****@*****.**") setup_identity_cache(projects=[project], users=[user]) task = Task.objects.create( keystone_user={ "user_id": user.id, "project_id": project.id, "project_domain_id": "default", }) data = { "domain_id": "notdefault", "parent_id": project.id, "project_name": "test_project", "description": "", } action = NewProjectAction(data, task=task, order=1) action.prepare() self.assertEqual(action.valid, False) action.approve() self.assertEqual(action.valid, False) action.submit({}) self.assertEqual(action.valid, False)