def test_current_user_login_delete(request): """Test for deleting current user login. Steps: * Login as Admin user * Create a new user * Login with the new user * Try deleting the user """ group_user = Group("EvmGroup-super_administrator") user = User(name='user' + fauxfactory.gen_alphanumeric(), credential=new_credential(), email='*****@*****.**', group=group_user) user.create() request.addfinalizer(user.delete) request.addfinalizer(user.appliance.server.login_admin()) with user: if version.current_version() >= '5.7': navigate_to(user, 'Details') menu_item = ('Configuration', 'Delete this User') assert tb.exists(*menu_item) and tb.is_greyed( *menu_item), "Delete User is not dimmed" else: with error.expected( "Current EVM User \"{}\" cannot be deleted".format( user.name)): user.delete()
def user(): user = User(credential=Credential(principal=fauxfactory.gen_alphanumeric(), secret=fauxfactory.gen_alphanumeric()), name=fauxfactory.gen_alphanumeric(), group=Group(description='EvmGroup-super_administrator')) user.create() return user
def test_group_crud_with_tag(a_provider, category, tag): """Test for verifying group create with tag defined Steps: * Login as Admin user * Navigate to add group page * Fill all fields * Set tag * Save group """ group = Group( description='grp{}'.format(fauxfactory.gen_alphanumeric()), role='EvmRole-approver', tag=[category.display_name, tag.display_name], host_cluster=[a_provider.data['name']], vm_template=[a_provider.data['name'], a_provider.data['datacenters'][0], 'Discovered virtual machine'] ) group.create() with update(group): group.tag = [tag.category.display_name, tag.display_name] group.host_cluster = [a_provider.data['name']] group.vm_template = [a_provider.data['name'], a_provider.data['datacenters'][0], 'Discovered virtual machine'] group.delete()
def test_edit_default_group(): flash_msg = 'Read Only EVM Group "{}" can not be edited' group = Group(description='EvmGroup-approver') navigate_to(Group, 'All') row = group_table.find_row_by_cells({'Name': group.description}) sel.check(sel.element(".//input[@type='checkbox']", root=row[0])) tb.select('Configuration', 'Edit the selected Group') flash.assert_message_match(flash_msg.format(group.description))
def test_delete_default_group(): flash_msg = "EVM Group \"{}\": Error during delete: A read only group cannot be deleted." group = Group(description='EvmGroup-administrator') view = navigate_to(Group, 'All') row = group_table.find_row_by_cells({'Name': group.description}) sel.check(sel.element(".//input[@type='checkbox']", root=row[0])) view.configuration.item_select('Delete selected Groups', handle_alert=True) view.flash.assert_message(flash_msg.format(group.description))
def test_group_description_required_error_validation(): error_text = "Description can't be blank" group = Group(description=None, role='EvmRole-approver') with error.expected(error_text): group.create() # Navigating away from this page will create an "Abandon Changes" alert # Since group creation failed we need to reset the state of the page navigate_to(group.appliance.server, 'Dashboard')
def group_with_tag(role, category, tag): """ Returns group object with set up tag filter used in test module """ group = Group(description='grp{}'.format(fauxfactory.gen_alphanumeric()), role=role.name, tag=[category.display_name, tag.display_name]) group.create() yield group group.delete()
def test_delete_default_group(): flash_msg = "EVM Group \"{}\": Error during delete: A read only group cannot be deleted." group = Group(description='EvmGroup-administrator') navigate_to(Group, 'All') row = group_table.find_row_by_cells({'Name': group.description}) sel.check(sel.element(".//input[@type='checkbox']", root=row[0])) sleep(10) # todo: temporary fix of js issue, to remove when switch to widgetastic tb.select('Configuration', 'Delete selected Groups', invokes_alert=True) sel.handle_alert() flash.assert_message_match(flash_msg.format(group.description))
def group(): data = cfme_data.get("openldap_test", {}) if not data: pytest.skip("No openldap_test section in yaml") credentials = Credential( principal=data["username"], secret=data["password"], ) return Group(description=data["group_name"], role="EvmRole-user", user_to_lookup=data['username'], ldap_credentials=credentials)
def test_delete_default_group(): """Test for deleting default group EvmGroup-administrator. Steps: * Login as Administrator user * Try deleting the group EvmGroup-adminstrator """ group = Group(description='EvmGroup-administrator') with pytest.raises(RBACOperationBlocked): group.delete()
def test_edit_default_group(): """Test that CFME prevents a user from editing a default group Steps: * Login as Administrator user * Try editing the group EvmGroup-adminstrator """ group = Group(description='EvmGroup-approver') group_updates = {} with pytest.raises(RBACOperationBlocked): group.update(group_updates)
def test_external_auth_ipa(request, setup_first_provider, configure_external_auth_ipa_module): try: data = cfme_data.get("ipa_test", {}) except KeyError: pytest.skip("No ipa_test section in yaml") group = Group(description='cfme', role="EvmRole-user") request.addfinalizer(group.delete) group.create() user = User(name=data["fullname"]) request.addfinalizer(user.delete) request.addfinalizer(login.login_admin) login.login(data["username"], data["password"]) assert login.current_full_name() == data["fullname"]
def test_current_user_login_delete(request): """Test for deleting current user login. Steps: * Login as Admin user * Create a new user * Login with the new user * Try deleting the user """ group_user = Group("EvmGroup-super_administrator") user = new_user(group=group_user) user.create() request.addfinalizer(user.delete) request.addfinalizer(user.appliance.server.login_admin) with user: with pytest.raises(RBACOperationBlocked): user.delete()
def group(request, data, auth_mode, add_group): if not data: pytest.skip("No data spcified for user group") credentials = Credential( principal=data["username"], secret=data["password"], ) user_group = Group(description=data['group_name'], role="EvmRole-user", user_to_lookup=data["username"], ldap_credentials=credentials) if add_group == RETRIEVE_GROUP: if 'ext' in auth_mode: user_group.add_group_from_ext_auth_lookup() elif 'miq' in auth_mode: user_group.add_group_from_ldap_lookup() request.addfinalizer(user_group.delete) elif add_group == CREATE_GROUP: user_group.create() request.addfinalizer(user_group.delete)
def test_openldap_auth(request, setup_first_provider, configure_openldap_auth_mode): data = cfme_data.get("openldap_test", {}) if not data: pytest.skip("No openldap_test section in yaml") group = Group(description=data["group_name"], role="EvmRole-user") request.addfinalizer(group.delete) group.create() credentials = Credential( principal=data["username"], secret=data["password"], verify_secret=data["password"], ) user = User(name=data["fullname"], credential=credentials) request.addfinalizer(user.delete) request.addfinalizer(login.login_admin) login.login(data["username"], data["password"]) assert login.current_full_name() == data["fullname"]
from cfme.common.provider import base_types from cfme.infrastructure import virtual_machines as vms from cfme.infrastructure.provider.virtualcenter import VMwareProvider from cfme.services.myservice import MyService from cfme.web_ui import InfoBlock from cfme.configure import tasks from fixtures.provider import setup_one_or_skip from cfme.utils.appliance.implementations.ui import navigate_to from cfme.utils.blockers import BZ from cfme.utils.log import logger from cfme.utils.providers import ProviderFilter from cfme.utils.update import update from cfme.utils import version usergrp = Group(description='EvmGroup-user') pytestmark = test_requirements.rbac @pytest.fixture(scope='module') def a_provider(request): prov_filter = ProviderFilter(classes=[VMwareProvider]) return setup_one_or_skip(request, filters=[prov_filter]) def new_credential(): return Credential(principal='uid' + fauxfactory.gen_alphanumeric(), secret='redhat')
def new_group(role='EvmRole-approver'): return Group( description='grp' + fauxfactory.gen_alphanumeric(), role=role)
def test_group_description_required_error_validation(): error_text = "Description can't be blank" group = Group(description=None, role='EvmRole-approver') with error.expected(error_text): group.create() flash.dismiss()