From 7f175317515684b999c8b09f2baf0b852c8e31c8 Mon Sep 17 00:00:00 2001 From: markbainix Date: Tue, 25 Jun 2024 13:38:12 -0400 Subject: [PATCH 1/3] fix EE pipeline issues: RO dataset, RO Boot env, Share admin Boot env --- keywords/webui/boot.py | 18 ----------------- .../test_read_only_admin_boot_environments.py | 6 ++++-- .../test_read_only_admin_dataset.py | 20 +++++++++++-------- .../test_share_admin_boot_environments.py | 6 ++++-- test_data/read_only_admin_dataset.csv | 2 +- 5 files changed, 21 insertions(+), 31 deletions(-) diff --git a/keywords/webui/boot.py b/keywords/webui/boot.py index 5c89034d..7241f6b8 100644 --- a/keywords/webui/boot.py +++ b/keywords/webui/boot.py @@ -5,24 +5,6 @@ class Boot: - @classmethod - def assert_boot_disk_actions_is_restricted(cls, boot_disk: str, action: str) -> bool: - """ - This method returns True or False whether the Boot disk actions button is locked and not clickable. - - :param boot_disk: The name of the data disks - :param action: The name of the action. Options [attach, detach, replace]. - :return: True if the Boot disk actions button is locked and not clickable otherwise it returns False. - - - Example: - - Boot.assert_boot_disk_actions_is_restricted('sda3') - """ - COM.click_button(f'{COM.convert_to_tag_format(boot_disk)}-actions') - result = COM.assert_button_is_restricted(action) - WebUI.send_key('esc') - return result - @classmethod def assert_boot_environment_element_restricted(cls, be_name: str, action: str) -> bool: """ diff --git a/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_boot_environments.py b/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_boot_environments.py index b40fdeec..94915f9d 100644 --- a/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_boot_environments.py +++ b/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_boot_environments.py @@ -105,5 +105,7 @@ def test_read_only_admin_cannot_replace_or_attach_disks_in_the_boot_pool(self): """ COM.click_button('bootenv-status') assert COM.assert_page_header('Boot Pool Status') is True - assert Boot.assert_boot_disk_actions_is_restricted(shared_config['BOOT_DISK'], 'attach') is True - assert Boot.assert_boot_disk_actions_is_restricted(shared_config['BOOT_DISK'], 'replace') is True + COM.click_button(f'{COM.convert_to_tag_format(shared_config['BOOT_DISK'])}-actions') + assert COM.assert_button_is_restricted('attach') is True + assert COM.assert_button_is_restricted('replace') is True + COM.click_on_element('//*') diff --git a/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_dataset.py b/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_dataset.py index b719417d..4885eb3a 100644 --- a/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_dataset.py +++ b/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_dataset.py @@ -1,6 +1,7 @@ import allure import pytest from helper.data_config import get_data_list +from helper.global_config import shared_config from keywords.api.post import API_POST from keywords.api.delete import API_DELETE from keywords.webui.common import Common @@ -26,7 +27,8 @@ def setup_test(self, data): API_POST.create_dataset(f'{data["pool"]}/{data["acl_parent_dataset"]}/{data["acl_child_dataset"]}', 'SMB') API_POST.create_dataset(f'{data["pool"]}/{data["generic_parent_dataset"]}', 'GENERIC') API_POST.create_dataset(f'{data["pool"]}/{data["generic_parent_dataset"]}/{data["generic_child_dataset"]}', 'GENERIC') - API_POST.create_snapshot(f'{data["pool"]}/{data["acl_parent_dataset"]}', data['snapshot_name']) + # API_POST.create_snapshot(f'{data["pool"]}/{data["acl_parent_dataset"]}', data['snapshot_name']) + shared_config['snapshot_name'] = API_POST.create_snapshot(f'{data["pool"]}/{data["acl_parent_dataset"]}', data['snapshot_name']).json()['snapshot_name'] @pytest.fixture(autouse=True, scope='class') def tear_down_test(self, data): @@ -36,7 +38,8 @@ def tear_down_test(self, data): yield # Return to dataset page or there will be an error when deleting the dataset. Navigation.navigate_to_datasets() - API_DELETE.delete_snapshot(f'{data["pool"]}/{data["acl_parent_dataset"]}@{data["snapshot_name"]}', recursive=True) + # API_DELETE.delete_snapshot(f'{data["pool"]}/{data["acl_parent_dataset"]}@{data["snapshot_name"]}', recursive=True) + API_DELETE.delete_snapshot(f'{data["pool"]}/{data["acl_parent_dataset"]}@{shared_config["snapshot_name"]}', recursive=True) API_DELETE.delete_dataset(f'{data["pool"]}/{data["acl_parent_dataset"]}', recursive=True, force=True) API_DELETE.delete_dataset(f'{data["pool"]}/{data["generic_parent_dataset"]}', recursive=True, force=True) @@ -268,17 +271,18 @@ def test_read_only_admin_is_not_able_to_delete_clone_rollback_and_hold_a_snapsho Datasets.click_manage_snapshots_link() assert Snapshots.assert_dataset_snapshot_page_header(f'{data["pool"]}/{data["acl_parent_dataset"]}') is True - assert Snapshots.assert_snapshot_is_visible(data['snapshot_name']) is True - Snapshots.expand_snapshot_by_name(data['snapshot_name']) + # assert Snapshots.assert_snapshot_is_visible(data['snapshot_name']) is True + assert Snapshots.assert_snapshot_is_visible(shared_config['snapshot_name']) is True + Snapshots.expand_snapshot_by_name(shared_config['snapshot_name']) # verify the read-only admin is not able to delete snapshots - assert Snapshots.assert_delete_button_is_restricted(data['snapshot_name']) is True + assert Snapshots.assert_delete_button_is_restricted(shared_config['snapshot_name']) is True # verify the read-only admin is not able to clone a snapshots - assert Snapshots.assert_clone_to_new_snapshot_button_is_restricted(data['snapshot_name']) is True + assert Snapshots.assert_clone_to_new_snapshot_button_is_restricted(shared_config['snapshot_name']) is True # verify the read-only admin is not able to roll back a snapshots - assert Snapshots.assert_rollback_button_is_restricted(data['snapshot_name']) is True + assert Snapshots.assert_rollback_button_is_restricted(shared_config['snapshot_name']) is True # verify the read-only admin is not able to change the hold checkbox - assert Snapshots.assert_hold_checkbox_is_restricted(data['snapshot_name']) is True + assert Snapshots.assert_hold_checkbox_is_restricted(shared_config['snapshot_name']) is True diff --git a/test_cases/webui/restricted_admin/share-admin/test_share_admin_boot_environments.py b/test_cases/webui/restricted_admin/share-admin/test_share_admin_boot_environments.py index 15797739..c2bded91 100644 --- a/test_cases/webui/restricted_admin/share-admin/test_share_admin_boot_environments.py +++ b/test_cases/webui/restricted_admin/share-admin/test_share_admin_boot_environments.py @@ -105,5 +105,7 @@ def test_share_admin_cannot_replace_or_attach_disks_in_the_boot_pool(self): """ COM.click_button('bootenv-status') assert COM.assert_page_header('Boot Pool Status') is True - assert Boot.assert_boot_disk_actions_is_restricted(shared_config['BOOT_DISK'], 'attach') is True - assert Boot.assert_boot_disk_actions_is_restricted(shared_config['BOOT_DISK'], 'replace') is True + COM.click_button(f'{COM.convert_to_tag_format(shared_config['BOOT_DISK'])}-actions') + assert COM.assert_button_is_restricted('attach') is True + assert COM.assert_button_is_restricted('replace') is True + COM.click_on_element('//*') diff --git a/test_data/read_only_admin_dataset.csv b/test_data/read_only_admin_dataset.csv index 61147328..2021ebb3 100644 --- a/test_data/read_only_admin_dataset.csv +++ b/test_data/read_only_admin_dataset.csv @@ -1,2 +1,2 @@ pool,acl_parent_dataset,acl_child_dataset,generic_parent_dataset,generic_child_dataset,snapshot_name -tank,smb-parent,smb-child,generic-parent,generic-child,test-snapshot \ No newline at end of file +tank,smb-parent,smb-child,generic-parent,generic-child,test-snapshot-%Y-%m-%d_%H-%M \ No newline at end of file From 33a6b3180f0bf3071537ded547ed93329d20597b Mon Sep 17 00:00:00 2001 From: markbainix Date: Tue, 25 Jun 2024 13:56:39 -0400 Subject: [PATCH 2/3] clean up --- .../read-only-admin/test_read_only_admin_dataset.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_dataset.py b/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_dataset.py index 4885eb3a..7fadd00e 100644 --- a/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_dataset.py +++ b/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_dataset.py @@ -27,7 +27,6 @@ def setup_test(self, data): API_POST.create_dataset(f'{data["pool"]}/{data["acl_parent_dataset"]}/{data["acl_child_dataset"]}', 'SMB') API_POST.create_dataset(f'{data["pool"]}/{data["generic_parent_dataset"]}', 'GENERIC') API_POST.create_dataset(f'{data["pool"]}/{data["generic_parent_dataset"]}/{data["generic_child_dataset"]}', 'GENERIC') - # API_POST.create_snapshot(f'{data["pool"]}/{data["acl_parent_dataset"]}', data['snapshot_name']) shared_config['snapshot_name'] = API_POST.create_snapshot(f'{data["pool"]}/{data["acl_parent_dataset"]}', data['snapshot_name']).json()['snapshot_name'] @pytest.fixture(autouse=True, scope='class') @@ -38,7 +37,6 @@ def tear_down_test(self, data): yield # Return to dataset page or there will be an error when deleting the dataset. Navigation.navigate_to_datasets() - # API_DELETE.delete_snapshot(f'{data["pool"]}/{data["acl_parent_dataset"]}@{data["snapshot_name"]}', recursive=True) API_DELETE.delete_snapshot(f'{data["pool"]}/{data["acl_parent_dataset"]}@{shared_config["snapshot_name"]}', recursive=True) API_DELETE.delete_dataset(f'{data["pool"]}/{data["acl_parent_dataset"]}', recursive=True, force=True) API_DELETE.delete_dataset(f'{data["pool"]}/{data["generic_parent_dataset"]}', recursive=True, force=True) @@ -271,7 +269,6 @@ def test_read_only_admin_is_not_able_to_delete_clone_rollback_and_hold_a_snapsho Datasets.click_manage_snapshots_link() assert Snapshots.assert_dataset_snapshot_page_header(f'{data["pool"]}/{data["acl_parent_dataset"]}') is True - # assert Snapshots.assert_snapshot_is_visible(data['snapshot_name']) is True assert Snapshots.assert_snapshot_is_visible(shared_config['snapshot_name']) is True Snapshots.expand_snapshot_by_name(shared_config['snapshot_name']) From 9e6a1e321f1835ce2949a1220b997c1edc27ff86 Mon Sep 17 00:00:00 2001 From: markbainix Date: Tue, 25 Jun 2024 14:14:17 -0400 Subject: [PATCH 3/3] clean up --- .../read-only-admin/test_read_only_admin_boot_environments.py | 2 +- .../share-admin/test_share_admin_boot_environments.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_boot_environments.py b/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_boot_environments.py index 94915f9d..974a236d 100644 --- a/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_boot_environments.py +++ b/test_cases/webui/restricted_admin/read-only-admin/test_read_only_admin_boot_environments.py @@ -105,7 +105,7 @@ def test_read_only_admin_cannot_replace_or_attach_disks_in_the_boot_pool(self): """ COM.click_button('bootenv-status') assert COM.assert_page_header('Boot Pool Status') is True - COM.click_button(f'{COM.convert_to_tag_format(shared_config['BOOT_DISK'])}-actions') + COM.click_button(f'{COM.convert_to_tag_format(shared_config["BOOT_DISK"])}-actions') assert COM.assert_button_is_restricted('attach') is True assert COM.assert_button_is_restricted('replace') is True COM.click_on_element('//*') diff --git a/test_cases/webui/restricted_admin/share-admin/test_share_admin_boot_environments.py b/test_cases/webui/restricted_admin/share-admin/test_share_admin_boot_environments.py index c2bded91..cb9ea20d 100644 --- a/test_cases/webui/restricted_admin/share-admin/test_share_admin_boot_environments.py +++ b/test_cases/webui/restricted_admin/share-admin/test_share_admin_boot_environments.py @@ -105,7 +105,7 @@ def test_share_admin_cannot_replace_or_attach_disks_in_the_boot_pool(self): """ COM.click_button('bootenv-status') assert COM.assert_page_header('Boot Pool Status') is True - COM.click_button(f'{COM.convert_to_tag_format(shared_config['BOOT_DISK'])}-actions') + COM.click_button(f'{COM.convert_to_tag_format(shared_config["BOOT_DISK"])}-actions') assert COM.assert_button_is_restricted('attach') is True assert COM.assert_button_is_restricted('replace') is True COM.click_on_element('//*')