Skip to content

TestUsersTab

Модуль тестов вкладки 'Пользователи'.

Содержит тесты для проверки функциональности работы с пользователями системы.

TestUsersTab

Класс тестов для проверки вкладки 'Пользователи'.

Source code in tests\e2e\test_users_tab.py
 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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
class TestUsersTab:
    """Класс тестов для проверки вкладки 'Пользователи'."""

    @pytest.fixture(scope="function", autouse=True)
    def setup(self, browser: Page) -> None:
        """Настраивает тестовое окружение.

        Args:
            browser: Экземпляр страницы Playwright.
        """

        lp = LoginPage(browser)
        lp.do_login()

        mp = MainPage(browser)
        mp.should_be_navigation_panel()
        mp.click_main_navigation_panel_item("Настройки")
        mp.click_configuration_navigation_panel_item("Пользователи")

    def test_users_tab_content(self, browser: Page) -> None:
        """Проверяет содержимое вкладки 'Пользователи'.

        Args:
            browser: Экземпляр страницы Playwright.
        """

        ut = UsersTab(browser)
        ut.should_be_toolbar()
        ut.should_be_users_table()
        ut.check_users_table_content(True)

    def test_users_tab_toolbar_buttons(self, browser: Page) -> None:
        """Проверяет кнопки на панели инструментов.

        Args:
            browser: Экземпляр страницы Playwright.
        """

        ut = UsersTab(browser)
        ut.should_be_toolbar_buttons()

    def test_add_user_window_content(self, browser: Page) -> None:
        """Проверяет содержимое окна добавления пользователя.

        Args:
            browser: Экземпляр страницы Playwright.
        """

        ut = UsersTab(browser)
        ut.open_add_user_window()
        ut.check_add_user_window_content()

    def test_add_user_window_close_buttons(self, browser: Page) -> None:
        """Проверяет кнопки закрытия окна добавления.

        Args:
            browser: Экземпляр страницы Playwright.
        """

        ut = UsersTab(browser)
        ut.open_add_user_window()
        ut.close_add_user_window_by_toolbar_button()

        ut.open_add_user_window()
        ut.close_add_user_window()

    def test_edit_user_window_content(self, browser: Page) -> None:
        """Проверяет содержимое окна редактирования.

        Args:
            browser: Экземпляр страницы Playwright.
        """

        ut = UsersTab(browser)
        user_name, role = ut.open_edit_user_page_by_index(0)
        ut.check_edit_user_window_content(user_name, role)

    def test_edit_user_window_close_buttons(self, browser: Page) -> None:
        """Проверяет кнопки закрытия окна редактирования.

        Args:
            browser: Экземпляр страницы Playwright.
        """

        ut = UsersTab(browser)
        user_name, role = ut.open_edit_user_page_by_index(0)
        ut.close_edit_user_window_by_toolbar_button(user_name)
        user_name, role = ut.open_edit_user_page_by_index(0)
        ut.close_edit_user_window(user_name)

    def test_add_and_delete_user(self, browser: Page) -> None:
        """Проверяет добавление и удаление пользователя.

        Args:
            browser: Экземпляр страницы Playwright.
        """

        user_data: Dict[str, str] = {"name": "User", "role": "Администратор", "password": "987654"}

        mp = MainPage(browser)
        ut = UsersTab(browser)

        ut.open_add_user_window()
        ut.add_new_user(user_data)
        mp.click_configuration_navigation_panel_item("Пользователи")
        mp.click_configuration_navigation_panel_item("Пользователи")
        ut.should_be_user_in_table(user_data["name"], user_data["role"])
        ut.open_edit_user_page_by_user(user_data["name"], user_data["role"])
        ut.delete_user(user_data["name"])
        mp.click_configuration_navigation_panel_item("Пользователи")
        mp.click_configuration_navigation_panel_item("Пользователи")
        ut.should_not_be_user_in_table(user_data["name"], user_data["role"])

    def test_reset_password(self, browser: Page) -> None:
        """Проверяет сброс пароля пользователя.

        Args:
            browser: Экземпляр страницы Playwright.
        """

        user_data: Dict[str, str] = {"name": "autoadmin", "role": "Администратор", "password": "123456"}

        mp = MainPage(browser)
        ut = UsersTab(browser)

        ut.open_add_user_window()
        ut.add_new_user(user_data)
        mp.click_configuration_navigation_panel_item("Пользователи")
        mp.click_configuration_navigation_panel_item("Пользователи")
        ut.open_edit_user_page_by_user(user_data["name"], user_data["role"])
        new_password = ut.reset_password(user_data["name"])

        if len(new_password) == 0:
            assert False, "Unsuccessful password reset"

        new_lp = LoginPage(browser)
        new_lp.do_login(username=user_data["name"], password=new_password)
        new_mp = MainPage(browser)
        new_mp.do_logout()
        lp_1 = LoginPage(browser)
        lp_1.do_login()
        mp_1 = MainPage(browser)
        mp_1.should_be_navigation_panel()
        mp_1.click_main_navigation_panel_item("Настройки")
        mp_1.click_configuration_navigation_panel_item("Пользователи")
        ut_1 = UsersTab(browser)
        ut_1.open_edit_user_page_by_user(user_data["name"], user_data["role"])
        ut_1.delete_user(user_data["name"])
        mp_1.click_configuration_navigation_panel_item("Пользователи")
        mp_1.click_configuration_navigation_panel_item("Пользователи")
        ut_1.should_not_be_user_in_table(user_data["name"], user_data["role"])

    def test_edit_user_role(self, browser: Page) -> None:
        """Проверяет изменение роли пользователя.

        Args:
            browser: Экземпляр страницы Playwright.
        """

        user_data: Dict[str, str] = {"name": "autooperator", "role": "Оператор", "password": "123245"}

        mp = MainPage(browser)
        ut = UsersTab(browser)

        ut.open_add_user_window()
        ut.add_new_user(user_data)
        mp.click_configuration_navigation_panel_item("Пользователи")
        mp.click_configuration_navigation_panel_item("Пользователи")
        ut.open_edit_user_page_by_user(user_data["name"], user_data["role"])
        new_user_data = {"role": "Контактное лицо"}
        ut.edit_user(user_data["name"], new_user_data)
        mp.click_configuration_navigation_panel_item("Пользователи")
        mp.click_configuration_navigation_panel_item("Пользователи")
        ut.should_be_user_in_table(user_data["name"], new_user_data["role"])
        ut.open_edit_user_page_by_user(user_data["name"], new_user_data["role"])
        ut.delete_user(user_data["name"])
        mp.click_configuration_navigation_panel_item("Пользователи")
        mp.click_configuration_navigation_panel_item("Пользователи")
        ut.should_not_be_user_in_table(user_data["name"], new_user_data["role"])

setup(browser)

Настраивает тестовое окружение.

Parameters:

Name Type Description Default
browser Page

Экземпляр страницы Playwright.

required
Source code in tests\e2e\test_users_tab.py
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@pytest.fixture(scope="function", autouse=True)
def setup(self, browser: Page) -> None:
    """Настраивает тестовое окружение.

    Args:
        browser: Экземпляр страницы Playwright.
    """

    lp = LoginPage(browser)
    lp.do_login()

    mp = MainPage(browser)
    mp.should_be_navigation_panel()
    mp.click_main_navigation_panel_item("Настройки")
    mp.click_configuration_navigation_panel_item("Пользователи")

test_add_and_delete_user(browser)

Проверяет добавление и удаление пользователя.

Parameters:

Name Type Description Default
browser Page

Экземпляр страницы Playwright.

required
Source code in tests\e2e\test_users_tab.py
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
def test_add_and_delete_user(self, browser: Page) -> None:
    """Проверяет добавление и удаление пользователя.

    Args:
        browser: Экземпляр страницы Playwright.
    """

    user_data: Dict[str, str] = {"name": "User", "role": "Администратор", "password": "987654"}

    mp = MainPage(browser)
    ut = UsersTab(browser)

    ut.open_add_user_window()
    ut.add_new_user(user_data)
    mp.click_configuration_navigation_panel_item("Пользователи")
    mp.click_configuration_navigation_panel_item("Пользователи")
    ut.should_be_user_in_table(user_data["name"], user_data["role"])
    ut.open_edit_user_page_by_user(user_data["name"], user_data["role"])
    ut.delete_user(user_data["name"])
    mp.click_configuration_navigation_panel_item("Пользователи")
    mp.click_configuration_navigation_panel_item("Пользователи")
    ut.should_not_be_user_in_table(user_data["name"], user_data["role"])

test_add_user_window_close_buttons(browser)

Проверяет кнопки закрытия окна добавления.

Parameters:

Name Type Description Default
browser Page

Экземпляр страницы Playwright.

required
Source code in tests\e2e\test_users_tab.py
66
67
68
69
70
71
72
73
74
75
76
77
78
def test_add_user_window_close_buttons(self, browser: Page) -> None:
    """Проверяет кнопки закрытия окна добавления.

    Args:
        browser: Экземпляр страницы Playwright.
    """

    ut = UsersTab(browser)
    ut.open_add_user_window()
    ut.close_add_user_window_by_toolbar_button()

    ut.open_add_user_window()
    ut.close_add_user_window()

test_add_user_window_content(browser)

Проверяет содержимое окна добавления пользователя.

Parameters:

Name Type Description Default
browser Page

Экземпляр страницы Playwright.

required
Source code in tests\e2e\test_users_tab.py
55
56
57
58
59
60
61
62
63
64
def test_add_user_window_content(self, browser: Page) -> None:
    """Проверяет содержимое окна добавления пользователя.

    Args:
        browser: Экземпляр страницы Playwright.
    """

    ut = UsersTab(browser)
    ut.open_add_user_window()
    ut.check_add_user_window_content()

test_edit_user_role(browser)

Проверяет изменение роли пользователя.

Parameters:

Name Type Description Default
browser Page

Экземпляр страницы Playwright.

required
Source code in tests\e2e\test_users_tab.py
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
def test_edit_user_role(self, browser: Page) -> None:
    """Проверяет изменение роли пользователя.

    Args:
        browser: Экземпляр страницы Playwright.
    """

    user_data: Dict[str, str] = {"name": "autooperator", "role": "Оператор", "password": "123245"}

    mp = MainPage(browser)
    ut = UsersTab(browser)

    ut.open_add_user_window()
    ut.add_new_user(user_data)
    mp.click_configuration_navigation_panel_item("Пользователи")
    mp.click_configuration_navigation_panel_item("Пользователи")
    ut.open_edit_user_page_by_user(user_data["name"], user_data["role"])
    new_user_data = {"role": "Контактное лицо"}
    ut.edit_user(user_data["name"], new_user_data)
    mp.click_configuration_navigation_panel_item("Пользователи")
    mp.click_configuration_navigation_panel_item("Пользователи")
    ut.should_be_user_in_table(user_data["name"], new_user_data["role"])
    ut.open_edit_user_page_by_user(user_data["name"], new_user_data["role"])
    ut.delete_user(user_data["name"])
    mp.click_configuration_navigation_panel_item("Пользователи")
    mp.click_configuration_navigation_panel_item("Пользователи")
    ut.should_not_be_user_in_table(user_data["name"], new_user_data["role"])

test_edit_user_window_close_buttons(browser)

Проверяет кнопки закрытия окна редактирования.

Parameters:

Name Type Description Default
browser Page

Экземпляр страницы Playwright.

required
Source code in tests\e2e\test_users_tab.py
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
def test_edit_user_window_close_buttons(self, browser: Page) -> None:
    """Проверяет кнопки закрытия окна редактирования.

    Args:
        browser: Экземпляр страницы Playwright.
    """

    ut = UsersTab(browser)
    user_name, role = ut.open_edit_user_page_by_index(0)
    ut.close_edit_user_window_by_toolbar_button(user_name)
    user_name, role = ut.open_edit_user_page_by_index(0)
    ut.close_edit_user_window(user_name)

test_edit_user_window_content(browser)

Проверяет содержимое окна редактирования.

Parameters:

Name Type Description Default
browser Page

Экземпляр страницы Playwright.

required
Source code in tests\e2e\test_users_tab.py
80
81
82
83
84
85
86
87
88
89
def test_edit_user_window_content(self, browser: Page) -> None:
    """Проверяет содержимое окна редактирования.

    Args:
        browser: Экземпляр страницы Playwright.
    """

    ut = UsersTab(browser)
    user_name, role = ut.open_edit_user_page_by_index(0)
    ut.check_edit_user_window_content(user_name, role)

test_reset_password(browser)

Проверяет сброс пароля пользователя.

Parameters:

Name Type Description Default
browser Page

Экземпляр страницы Playwright.

required
Source code in tests\e2e\test_users_tab.py
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
def test_reset_password(self, browser: Page) -> None:
    """Проверяет сброс пароля пользователя.

    Args:
        browser: Экземпляр страницы Playwright.
    """

    user_data: Dict[str, str] = {"name": "autoadmin", "role": "Администратор", "password": "123456"}

    mp = MainPage(browser)
    ut = UsersTab(browser)

    ut.open_add_user_window()
    ut.add_new_user(user_data)
    mp.click_configuration_navigation_panel_item("Пользователи")
    mp.click_configuration_navigation_panel_item("Пользователи")
    ut.open_edit_user_page_by_user(user_data["name"], user_data["role"])
    new_password = ut.reset_password(user_data["name"])

    if len(new_password) == 0:
        assert False, "Unsuccessful password reset"

    new_lp = LoginPage(browser)
    new_lp.do_login(username=user_data["name"], password=new_password)
    new_mp = MainPage(browser)
    new_mp.do_logout()
    lp_1 = LoginPage(browser)
    lp_1.do_login()
    mp_1 = MainPage(browser)
    mp_1.should_be_navigation_panel()
    mp_1.click_main_navigation_panel_item("Настройки")
    mp_1.click_configuration_navigation_panel_item("Пользователи")
    ut_1 = UsersTab(browser)
    ut_1.open_edit_user_page_by_user(user_data["name"], user_data["role"])
    ut_1.delete_user(user_data["name"])
    mp_1.click_configuration_navigation_panel_item("Пользователи")
    mp_1.click_configuration_navigation_panel_item("Пользователи")
    ut_1.should_not_be_user_in_table(user_data["name"], user_data["role"])

test_users_tab_content(browser)

Проверяет содержимое вкладки 'Пользователи'.

Parameters:

Name Type Description Default
browser Page

Экземпляр страницы Playwright.

required
Source code in tests\e2e\test_users_tab.py
33
34
35
36
37
38
39
40
41
42
43
def test_users_tab_content(self, browser: Page) -> None:
    """Проверяет содержимое вкладки 'Пользователи'.

    Args:
        browser: Экземпляр страницы Playwright.
    """

    ut = UsersTab(browser)
    ut.should_be_toolbar()
    ut.should_be_users_table()
    ut.check_users_table_content(True)

test_users_tab_toolbar_buttons(browser)

Проверяет кнопки на панели инструментов.

Parameters:

Name Type Description Default
browser Page

Экземпляр страницы Playwright.

required
Source code in tests\e2e\test_users_tab.py
45
46
47
48
49
50
51
52
53
def test_users_tab_toolbar_buttons(self, browser: Page) -> None:
    """Проверяет кнопки на панели инструментов.

    Args:
        browser: Экземпляр страницы Playwright.
    """

    ut = UsersTab(browser)
    ut.should_be_toolbar_buttons()