summaryrefslogtreecommitdiffstats
path: root/ipatests/test_webui/test_idviews.py
blob: b7f5c312eb2a5a7680b55126ae91446b5010a5b8 (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#
# Copyright (C) 2015  FreeIPA Contributors see COPYING for license
#

from ipatests.test_webui.ui_driver import UI_driver
from ipatests.test_webui.ui_driver import screenshot
import ipatests.test_webui.data_idviews as idview
import ipatests.test_webui.data_user as user
import ipatests.test_webui.data_group as group
import ipatests.test_webui.data_hostgroup as hostgroup
from ipatests.test_webui.test_host import host_tasks, ENTITY as HOST_ENTITY
import pytest

DATA_USER = {
    'pkey': user.PKEY,
    'add': [
        ('combobox', 'ipaanchoruuid', user.PKEY),
        ('textbox', 'uid', 'iduser'),
        ('textbox', 'gecos', 'id user'),
        ('textbox', 'uidnumber', 1),
        ('textbox', 'gidnumber', 1),
        ('textbox', 'loginshell', 'shell'),
        ('textbox', 'homedirectory', 'home'),
        ('textarea', 'description', 'desc'),
    ],
    'mod': [
        ('textbox', 'uid', 'moduser'),
        ('textbox', 'uidnumber', 3),
    ],
}

DATA_GROUP = {
    'pkey': group.PKEY,
    'add': [
        ('combobox', 'ipaanchoruuid', group.PKEY),
        ('textbox', 'cn', 'idgroup'),
        ('textbox', 'gidnumber', 2),
        ('textarea', 'description', 'desc'),
    ],
    'mod': [
        ('textbox', 'cn', 'modgroup'),
        ('textbox', 'gidnumber', 3),
    ],
}


@pytest.mark.tier1
class test_idviews(UI_driver):

    @screenshot
    def test_crud(self):
        """
        Basic CRUD: ID view
        """
        self.init_app()
        self.basic_crud(
            idview.ENTITY, idview.DATA, default_facet=idview.USER_FACET)

    @screenshot
    def test_overrides(self):
        """
        User and group overrides
        """
        self.init_app()

        self.add_record(user.ENTITY, user.DATA, navigate=False)
        self.add_record(group.ENTITY, group.DATA)
        self.add_record(idview.ENTITY, idview.DATA)

        self.navigate_to_record(idview.PKEY)
        parent_entity = 'idview'

        # user override
        self.add_record(parent_entity, DATA_USER, facet=idview.USER_FACET)
        self.navigate_to_record(user.PKEY)
        self.mod_record(idview.USER_FACET, DATA_USER)
        self.delete_action(idview.ENTITY, user.PKEY)

        # group override
        self.navigate_to_record(idview.PKEY)
        self.switch_to_facet(idview.GROUP_FACET)
        self.add_record(parent_entity, DATA_GROUP, facet=idview.GROUP_FACET)
        self.navigate_to_record(group.PKEY)
        self.mod_record(idview.GROUP_FACET, DATA_GROUP)
        self.delete_action(idview.ENTITY, group.PKEY)

        # cleanup
        self.delete(idview.ENTITY, [idview.DATA])
        self.delete(user.ENTITY, [user.DATA])
        self.delete(group.ENTITY, [group.DATA])

    @screenshot
    def test_hosts(self):
        """
        Apply to hosts and host groups
        """
        self.init_app()
        host = host_tasks()
        host.setup(self.driver, self.config)

        self.add_record(HOST_ENTITY, host.data)
        self.add_record(hostgroup.ENTITY, hostgroup.DATA)
        self.navigate_to_record(hostgroup.PKEY)
        self.add_associations([host.pkey])
        self.add_record(idview.ENTITY, idview.DATA)

        self.navigate_to_record(idview.PKEY)
        self.switch_to_facet(idview.HOST_FACET)
        parent_entity = 'idview'

        # apply to host
        self.add_associations(
            [host.pkey], facet='appliedtohosts', facet_btn='idview_apply')
        self.delete_record([host.pkey], facet_btn='idview_unapply')

        # apply to hostgroup
        self.add_associations(
            [hostgroup.PKEY], facet_btn='idview_apply_hostgroups',
            member_pkeys=[host.pkey])
        self.delete_associations(
            [hostgroup.PKEY], facet_btn='idview_unapply_hostgroups',
            member_pkeys=[host.pkey])

        # cleanup
        self.delete(idview.ENTITY, [idview.DATA])
        self.delete(hostgroup.ENTITY, [hostgroup.DATA])
        self.delete(HOST_ENTITY, [host.data])