Files
horizon/openstack_dashboard/test/integration_tests/tests/test_projects.py
Vlad Okhrimenko f623281b29 Provide integration test for managing a project's members
A new MembershipMenuRegion was implemented specifically for the task
of dealing with Users being assigned to a Projects. It may be re-used
in other tests as well, which deal with the same membership concept
(e.g., Flavor Access control).

The checker method .is_the_current_page() is changed to act either as
a boolean method, or as an internal assert method.

Co-Authored-By: Timur Sufiev <tsufiev@mirantis.com>
Implements blueprint: horizon-integration-tests-coverage
Change-Id: Ie661a1522951e1e86c461c6ec284fcf4a3e6d6fb
2016-04-20 07:48:27 +00:00

74 lines
3.0 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from openstack_dashboard.test.integration_tests import helpers
from openstack_dashboard.test.integration_tests.regions import messages
PROJECT_NAME = helpers.gen_random_resource_name("project")
class TestCreateDeleteProject(helpers.AdminTestCase):
def setUp(self):
super(TestCreateDeleteProject, self).setUp()
self.projects_page = self.home_pg.go_to_identity_projectspage()
def test_create_delete_project(self):
self.projects_page.create_project(PROJECT_NAME)
self.assertTrue(
self.projects_page.find_message_and_dismiss(messages.SUCCESS))
self.assertFalse(
self.projects_page.find_message_and_dismiss(messages.ERROR))
self.assertTrue(self.projects_page.is_project_present(PROJECT_NAME))
self.projects_page.delete_project(PROJECT_NAME)
self.assertTrue(
self.projects_page.find_message_and_dismiss(messages.SUCCESS))
self.assertFalse(
self.projects_page.find_message_and_dismiss(messages.ERROR))
self.assertFalse(self.projects_page.is_project_present(PROJECT_NAME))
class TestModifyProject(helpers.AdminTestCase):
def setUp(self):
super(TestModifyProject, self).setUp()
self.projects_page = self.home_pg.go_to_identity_projectspage()
self.projects_page.create_project(PROJECT_NAME)
self.assertTrue(
self.projects_page.find_message_and_dismiss(messages.SUCCESS))
def test_add_member(self):
admin_name = self.CONFIG.identity.admin_username
regular_role_name = self.CONFIG.identity.default_keystone_role
admin_role_name = self.CONFIG.identity.default_keystone_admin_role
roles2add = {regular_role_name, admin_role_name}
self.projects_page.allocate_user_to_project(
admin_name, roles2add, PROJECT_NAME)
self.assertTrue(
self.projects_page.find_message_and_dismiss(messages.SUCCESS))
self.assertFalse(
self.projects_page.find_message_and_dismiss(messages.ERROR))
user_roles = self.projects_page.get_user_roles_at_project(
admin_name, PROJECT_NAME)
self.assertEqual(roles2add, user_roles,
"The requested roles haven't been set for the user!")
def tearDown(self):
if not self.projects_page.is_the_current_page():
self.home_pg.go_to_identity_projectspage()
self.projects_page.delete_project(PROJECT_NAME)
super(TestModifyProject, self).tearDown()