def test_positive_update_usergroup(self): """Update a host with a new user group @id: a8d702ee-592a-4b5d-9fec-2fa07d3fda1b @assert: A host is updated with a new user group @CaseLevel: Integration """ org = entities.Organization().create() loc = entities.Location(organization=[org]).create() role = entities.Role().create() user = entities.User( location=[loc], organization=[org], role=[role], ).create() usergroup = entities.UserGroup( role=[role], user=[user], ).create() host = entities.Host( location=loc, organization=org, owner=usergroup, owner_type='Usergroup', ).create() new_usergroup = entities.UserGroup( role=[role], user=[user], ).create() host.owner = new_usergroup host = host.update(['owner']) self.assertEqual(host.owner.read().name, new_usergroup.name)
def test_positive_create_and_update_with_usergroup(module_org, module_location, function_role): """Create and update host with user group specified :id: 706e860c-8c05-4ddc-be20-0ecd9f0da813 :expectedresults: A host is created and updated with expected user group assigned :CaseLevel: Integration """ user = entities.User(location=[module_location], organization=[module_org], role=[function_role]).create() usergroup = entities.UserGroup(role=[function_role], user=[user]).create() host = entities.Host( location=module_location, organization=module_org, owner=usergroup, owner_type='Usergroup', ).create() assert host.owner.read().name == usergroup.name new_usergroup = entities.UserGroup(role=[function_role], user=[user]).create() host.owner = new_usergroup host = host.update(['owner']) assert host.owner.read().name == new_usergroup.name
def test_positive_update_usergroup(self): """Update a host with a new user group @feature: Hosts @assert: A host is updated with a new user group """ org = entities.Organization().create() loc = entities.Location(organization=[org]).create() role = entities.Role().create() user = entities.User( location=[loc], organization=[org], role=[role], ).create() usergroup = entities.UserGroup( role=[role], user=[user], ).create() host = entities.Host( location=loc, organization=org, owner=usergroup, owner_type='Usergroup', ).create() new_usergroup = entities.UserGroup( role=[role], user=[user], ).create() host.owner = new_usergroup host = host.update(['owner']) self.assertEqual(host.owner.read().name, new_usergroup.name)
def test_negative_create_with_same_name(self): """Attempt to create user group with a name of already existent entity. @Feature: Usergroup @Assert: User group is not created. """ user_group = entities.UserGroup().create() with self.assertRaises(HTTPError): entities.UserGroup(name=user_group.name).create()
def test_negative_create_with_same_name(self): """Attempt to create user group with a name of already existent entity. @id: aba0925a-d5ec-4e90-86c6-404b9b6f0179 @Assert: User group is not created. """ user_group = entities.UserGroup().create() with self.assertRaises(HTTPError): entities.UserGroup(name=user_group.name).create()
def test_negative_create_with_same_name(self): """Attempt to create user group with a name of already existent entity. :id: aba0925a-d5ec-4e90-86c6-404b9b6f0179 :expectedresults: User group is not created. :CaseImportance: Critical """ user_group = entities.UserGroup().create() with pytest.raises(HTTPError): entities.UserGroup(name=user_group.name).create()
def test_positive_update_with_new_usergroup(self): """Add new user group to existing one @Feature: Usergroup @Assert: User group is added to existing group successfully. """ new_usergroup = entities.UserGroup().create() user_group = entities.UserGroup().create() user_group.usergroup = [new_usergroup] user_group = user_group.update(['usergroup']) self.assertEqual(new_usergroup.name, user_group.usergroup[0].read().name)
def test_positive_update_with_new_usergroup(self): """Add new user group to existing one @id: 3cb29d07-5789-4f94-9fd9-a7e494b3c110 @Assert: User group is added to existing group successfully. """ new_usergroup = entities.UserGroup().create() user_group = entities.UserGroup().create() user_group.usergroup = [new_usergroup] user_group = user_group.update(['usergroup']) self.assertEqual( new_usergroup.name, user_group.usergroup[0].read().name)
def test_negative_update_with_same_name(self): """Attempt to update user group with a name of already existent entity. @Feature: Usergroup @Assert: User group is not updated. """ name = gen_string('alphanumeric') entities.UserGroup(name=name).create() new_user_group = entities.UserGroup().create() new_user_group.name = name with self.assertRaises(HTTPError): new_user_group.update(['name']) self.assertNotEqual(new_user_group.read().name, name)
def test_positive_update_with_new_usergroup(self): """Add new user group to existing one :id: 3cb29d07-5789-4f94-9fd9-a7e494b3c110 :expectedresults: User group is added to existing group successfully. :CaseImportance: Critical """ new_usergroup = entities.UserGroup().create() user_group = entities.UserGroup().create() user_group.usergroup = [new_usergroup] user_group = user_group.update(['usergroup']) assert new_usergroup.name == user_group.usergroup[0].read().name
def test_positive_create_with_usergroup(self): """Create new user group using another user group attached to the initial group. @Feature: Usergroup @Assert: User group is created successfully. """ for name in valid_data_list(): with self.subTest(name): sub_user_group = entities.UserGroup(name=name).create() user_group = entities.UserGroup(usergroup=[sub_user_group ], ).create() self.assertEqual(len(user_group.usergroup), 1) self.assertEqual(user_group.usergroup[0].read().name, name)
def test_post_verify_usergroup_membership(request): """After upgrade, check the LDAP user's(that we created before the upgrade) existence and their functionality. :steps: 1. verify ldap user(created before upgrade) is part of user group. 2. Update ldap auth. :expectedresults: After upgrade, user group membership should remain the same and LDAP auth update should work. """ pre_test_name = [ mark.kwargs['depend_on'].__name__ for mark in request.node.own_markers if 'depend_on' in mark.kwargs ][0] user_group = entities.UserGroup().search( query={'search': f'name={pre_test_name}_user_group'}) authsource = entities.AuthSourceLDAP().search( query={'search': f'name={pre_test_name}_server'})[0] request.addfinalizer(authsource.delete) request.addfinalizer(user_group[0].delete) user = entities.User().search( query={'search': f'login={settings.ldap.username}'})[0] request.addfinalizer(user.delete) assert user.read().id == user_group[0].read().user[0].id
def test_positive_create_with_usergroups(self): """Create new user group using multiple user groups attached to that initial group. :id: 9ba71288-af8b-4957-8413-442a47057634 :expectedresults: User group is created successfully and contains all expected user groups :CaseLevel: Integration """ sub_user_groups = [entities.UserGroup().create() for _ in range(randint(3, 5))] user_group = entities.UserGroup(usergroup=sub_user_groups).create() assert sorted([usergroup.name for usergroup in sub_user_groups]) == sorted( [usergroup.read().name for usergroup in user_group.usergroup] )
def test_positive_update_owner_type(owner_type, module_org, module_location, module_user): """Update a host's ``owner_type``. :id: b72cd8ef-3a0b-4d2d-94f9-9b64908d699a :parametrized: yes :expectedresults: The host's ``owner_type`` attribute is updated as requested. :CaseImportance: Critical :BZ: 1210001 """ owners = { 'User': module_user, 'Usergroup': entities.UserGroup().create(), } host = entities.Host(organization=module_org, location=module_location).create() host.owner_type = owner_type host.owner = owners[owner_type] host = host.update(['owner_type', 'owner']) assert host.owner_type == owner_type assert host.owner.read() == owners[owner_type]
def test_positive_delete_by_type(self): """Delete some entities of different types and check audit logs for these events using entity type as search criteria :id: de9b056f-10da-485a-87ce-b02a9efff15c :expectedresults: Audit logs contain corresponding entries per each delete event """ for entity in [ entities.Architecture(), entities.Domain(), entities.Host(), entities.HostGroup(), entities.Location(), entities.Organization(), entities.Role(), entities.UserGroup(), ]: created_entity = entity.create() created_entity.delete() audits = entities.Audit().search( query={'search': 'type={0}'.format( created_entity.__class__.__name__.lower()) } ) entity_audits = [entry for entry in audits if entry.auditable_name == created_entity.name] if not entity_audits: self.fail('audit not found by name "{}"'.format( created_entity.name)) audit = entity_audits[0] self.assertEqual(audit.auditable_id, created_entity.id) self.assertEqual(audit.action, 'destroy') self.assertEqual(audit.version, 2)
def test_post_verify_usergroup_membership(self, request, dependent_scenario_name): """After upgrade, check the LDAP user created before the upgrade still exists and its update functionality should work. :id: postupgrade-7545fc6a-bd57-4403-90c8-c68a7a3b5bca :steps: 1. verify ldap user(created before upgrade) is part of user group. 2. Update ldap auth. :expectedresults: After upgrade, user group membership should remain the same and LDAP auth update should work. """ pre_test_name = dependent_scenario_name user_group = entities.UserGroup().search( query={'search': f'name={pre_test_name}_user_group'} ) authsource = entities.AuthSourceLDAP().search( query={'search': f'name={pre_test_name}_server'} )[0] request.addfinalizer(authsource.delete) request.addfinalizer(user_group[0].delete) user = entities.User().search(query={'search': f'login={settings.ldap.username}'})[0] request.addfinalizer(user.delete) assert user.read().id == user_group[0].read().user[0].id
def test_positive_update_by_type(self): """Update some entities of different types and check audit logs for these events using entity type as search criteria :id: 43e73a11-b241-4b91-bdf6-e966366014e8 :expectedresults: Audit logs contain corresponding entries per each update event """ for entity in [ entities.Architecture(), entities.Domain(), entities.HostGroup(), entities.Location(), entities.Organization(), entities.Role(), entities.UserGroup(), ]: created_entity = entity.create() name = created_entity.name new_name = gen_string('alpha') created_entity.name = new_name created_entity = created_entity.update(['name']) audit = entities.Audit().search( query={'search': 'type={0}'.format( created_entity.__class__.__name__.lower()) } )[0] self.assertEqual(audit.auditable_name, name) self.assertEqual(audit.auditable_id, created_entity.id) self.assertEqual( audit.audited_changes['name'], [name, new_name]) self.assertEqual(audit.action, 'update') self.assertEqual(audit.version, 2)
def test_positive_delete_by_type(): """Delete some entities of different types and check audit logs for these events using entity type as search criteria :id: de9b056f-10da-485a-87ce-b02a9efff15c :expectedresults: Audit logs contain corresponding entries per each delete event :CaseImportance: Medium """ for entity in [ entities.Architecture(), entities.Domain(), entities.Host(), entities.HostGroup(), entities.Location(), entities.Role(), entities.UserGroup(), ]: created_entity = entity.create() created_entity.delete() audits = entities.Audit().search( query={ 'search': f'type={created_entity.__class__.__name__.lower()}' }) entity_audits = [ entry for entry in audits if entry.auditable_name == created_entity.name ] assert entity_audits, f'audit not found by name "{created_entity.name}"' audit = entity_audits[0] assert audit.auditable_id == created_entity.id assert audit.action == 'destroy' assert audit.version == 2
def test_positive_create_with_usergroup(self): """Create a host with user group specified @feature: Hosts @assert: A host is created with expected user group assigned """ org = entities.Organization().create() loc = entities.Location(organization=[org]).create() role = entities.Role().create() user = entities.User( location=[loc], organization=[org], role=[role], ).create() usergroup = entities.UserGroup( role=[role], user=[user], ).create() host = entities.Host( location=loc, organization=org, owner=usergroup, owner_type='Usergroup', ).create() self.assertEqual(host.owner.read().name, usergroup.name)
def test_negative_update_with_same_name(self): """Attempt to update user group with a name of already existent entity. :id: 14888998-9282-4d81-9e99-234d19706783 :expectedresults: User group is not updated. :CaseImportance: Critical """ name = gen_string('alphanumeric') entities.UserGroup(name=name).create() new_user_group = entities.UserGroup().create() new_user_group.name = name with pytest.raises(HTTPError): new_user_group.update(['name']) assert new_user_group.read().name != name
def test_positive_create_with_usergroup(self): """Create a host with user group specified @id: 706e860c-8c05-4ddc-be20-0ecd9f0da813 @assert: A host is created with expected user group assigned @CaseLevel: Integration """ org = entities.Organization().create() loc = entities.Location(organization=[org]).create() role = entities.Role().create() user = entities.User( location=[loc], organization=[org], role=[role], ).create() usergroup = entities.UserGroup( role=[role], user=[user], ).create() host = entities.Host( location=loc, organization=org, owner=usergroup, owner_type='Usergroup', ).create() self.assertEqual(host.owner.read().name, usergroup.name)
def test_positive_create_with_usergroup(self, name): """Create new user group using another user group attached to the initial group. :id: 2a3f7b1a-7411-4c12-abaf-9a3ca1dfae31 :parametrized: yes :expectedresults: User group is created successfully. :CaseImportance: Critical """ sub_user_group = entities.UserGroup(name=name).create() user_group = entities.UserGroup(usergroup=[sub_user_group]).create() assert len(user_group.usergroup) == 1 assert user_group.usergroup[0].read().name == name
def ldap_usergroup_name(): """Return some random usergroup name, and attempt to delete such usergroup when test finishes. """ usergroup_name = gen_string('alphanumeric') yield usergroup_name user_groups = entities.UserGroup().search(query={'search': 'name="{}"'.format(usergroup_name)}) if user_groups: user_groups[0].delete()
def test_positive_create_with_usergroup(self): """Create new user group using another user group attached to the initial group. :id: 2a3f7b1a-7411-4c12-abaf-9a3ca1dfae31 :expectedresults: User group is created successfully. :CaseImportance: Critical """ for name in valid_data_list(): with self.subTest(name): sub_user_group = entities.UserGroup(name=name).create() user_group = entities.UserGroup(usergroup=[sub_user_group ], ).create() self.assertEqual(len(user_group.usergroup), 1) self.assertEqual(user_group.usergroup[0].read().name, name)
def test_positive_create_with_usergroups(self): """Create new user group using multiple user groups attached to that initial group. @Feature: Usergroup @Assert: User group is created successfully and contains all expected user groups """ sub_user_groups = [ entities.UserGroup().create() for _ in range(randint(3, 5)) ] user_group = entities.UserGroup(usergroup=sub_user_groups).create() self.assertEqual( sorted([usergroup.name for usergroup in sub_user_groups]), sorted( [usergroup.read().name for usergroup in user_group.usergroup]))
def test_negative_create_with_name(self): """Attempt to create user group with invalid name. @Feature: Usergroup @Assert: User group is not created. """ for name in invalid_values_list(): with self.subTest(name): with self.assertRaises(HTTPError): entities.UserGroup(name=name).create()
def _clean_up_previous_ldap(self): """clean up the all ldap settings user, usergroup and ldap delete""" ldap = entities.AuthSourceLDAP().search() for ldap_auth in range(len(ldap)): users = entities.User(auth_source=ldap[ldap_auth]).search() for user in range(len(users)): users[user].delete() ldap[ldap_auth].delete() user_groups = entities.UserGroup().search() for user_group in user_groups: user_group.delete()
def test_positive_create_with_name(self): """Create new user group using different valid names @id: 3a2255d9-f48d-4f22-a4b9-132361bd9224 @Assert: User group is created successfully. """ for name in valid_data_list(): with self.subTest(name): user_group = entities.UserGroup(name=name).create() self.assertEqual(user_group.name, name)
def test_positive_delete(self): """Create user group with valid name and then delete it @feature: Usergroup @assert: User group is deleted successfully """ user_group = entities.UserGroup().create() user_group.delete() with self.assertRaises(HTTPError): user_group.read()
def test_positive_create_with_name(self): """Create new user group using different valid names @Feature: Usergroup @Assert: User group is created successfully. """ for name in valid_data_list(): with self.subTest(name): user_group = entities.UserGroup(name=name).create() self.assertEqual(user_group.name, name)