summaryrefslogtreecommitdiff
path: root/openstack_dashboard/test/integration_tests/tests/test_projects.py
blob: f859586402614b37856116750b4b8035ca259661 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#    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().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.assertEqual(
            self.projects_page.find_messages_and_dismiss(), {messages.SUCCESS})
        self.assertTrue(self.projects_page.is_project_present(PROJECT_NAME))

        self.projects_page.delete_project(PROJECT_NAME)
        self.assertEqual(
            self.projects_page.find_messages_and_dismiss(), {messages.SUCCESS})
        self.assertFalse(self.projects_page.is_project_present(PROJECT_NAME))


class TestModifyProject(helpers.AdminTestCase):

    def setUp(self):
        super().setUp()
        self.projects_page = self.home_pg.go_to_identity_projectspage()
        self.projects_page.create_project(PROJECT_NAME)
        self.assertEqual(
            self.projects_page.find_messages_and_dismiss(), {messages.SUCCESS})

        def cleanup():
            if not self.projects_page.is_the_current_page():
                self.home_pg.go_to_identity_projectspage()
            self.projects_page.delete_project(PROJECT_NAME)

        self.addCleanup(cleanup)

    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.assertEqual(
            self.projects_page.find_messages_and_dismiss(), {messages.SUCCESS})

        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!")