def test_container_cn_relocation_with_special_characters(self, udm): """Move container/cn into another container/cn special characters""" cn_name = uts.random_name_special_characters() cn = udm.create_object('container/cn', name=cn_name) cn2 = udm.create_object('container/cn', name=uts.random_name_special_characters()) udm.move_object('container/cn', dn=cn, position=cn2) utils.verify_ldap_object('cn=%s,%s' % (ldap.dn.escape_dn_chars(cn_name), cn2))
def test_container_ou_relocation_with_special_characters(self, udm): """Move container/ou into another container/ou with special characters""" ou_name = uts.random_name_special_characters() ou = udm.create_object('container/ou', name=ou_name) ou2 = udm.create_object('container/ou', name=uts.random_name_special_characters()) udm.move_object('container/ou', dn=ou, position=ou2) utils.verify_ldap_object('ou=%s,%s' % (ldap.dn.escape_dn_chars(ou_name), ou2))
def test_container_cn_recursive_removal_with_special_characters(self, udm): """Remove container/cn recursively special characters""" cn_name = uts.random_name_special_characters() cn2_name = uts.random_name_special_characters() cn = udm.create_object('container/cn', name=cn_name) cn2 = udm.create_object('container/cn', name=cn2_name) cn3 = udm.create_object('container/cn', name=uts.random_name_special_characters()) udm.move_object('container/cn', dn=cn, position=cn2) udm.move_object('container/cn', dn=cn2, position=cn3) cn = 'cn=%s,cn=%s,%s' % (ldap.dn.escape_dn_chars(cn_name), ldap.dn.escape_dn_chars(cn2_name), cn3) udm.remove_object('container/cn', dn=cn3) utils.verify_ldap_object(cn, should_exist=False)
def test_container_ou_creation_set_description_with_special_characters( self, udm): """Set description during container/ou creation with special characters""" description = uts.random_string() ou = udm.create_object('container/ou', name=uts.random_name_special_characters(), description=description) utils.verify_ldap_object(ou, {'description': [description]})
def test_container_ou_recursive_removal_with_special_characters(self, udm): """Remove an container/ou recursively with special characters""" ou_name = uts.random_name_special_characters() ou2_name = uts.random_name_special_characters() ou = udm.create_object('container/ou', name=ou_name) ou2 = udm.create_object('container/ou', name=ou2_name) ou3 = udm.create_object('container/ou', name=uts.random_name_special_characters()) utils.wait_for_replication_and_postrun() udm.move_object('container/ou', dn=ou, position=ou2) udm.move_object('container/ou', dn=ou2, position=ou3) ou = 'ou=%s,ou=%s,%s' % (ldap.dn.escape_dn_chars(ou_name), ldap.dn.escape_dn_chars(ou2_name), ou3) udm.remove_object('container/ou', dn=ou3) utils.verify_ldap_object(ou, should_exist=False)
def test_container_cn_modification_set_description_with_special_characters( self, udm): """Set description during container/cn modification special characters""" description = uts.random_string() cn_name = uts.random_name_special_characters() cn = udm.create_object('container/cn', name=cn_name) wait_for_drs_replication(ldap.filter.filter_format('cn=%s', [cn_name])) udm.modify_object('container/cn', dn=cn, description=description) utils.verify_ldap_object(cn, {'description': [description]})
def test_container_cn_rename_with_special_characters(self, udm, ucr): """Rename a container/cn with subobjects""" user_name = uts.random_string() cn_name = uts.random_name_special_characters() cn_name_new = uts.random_name_special_characters() cn = udm.create_object('container/cn', name=cn_name) user = udm.create_user(position=cn, username=user_name) udm.modify_object('container/cn', dn=cn, name=cn_name_new) utils.verify_ldap_object(cn, should_exist=False) utils.verify_ldap_object(user[0], should_exist=False) new_cn = 'cn=%s,%s' % (ldap.dn.escape_dn_chars(cn_name_new), ucr.get('ldap/base')) new_user = '******' % (ldap.dn.escape_dn_chars(user_name), ldap.dn.escape_dn_chars(cn_name_new), ucr.get('ldap/base')) utils.verify_ldap_object(new_cn, should_exist=True) utils.verify_ldap_object(new_user, should_exist=True)
def test_container_ou_rename_with_special_characters(self, udm, ucr): """Rename a container/ou with subobjects with special characters""" # bugs: [35959] user_name = uts.random_string() ou_name = uts.random_name_special_characters() ou_name_new = uts.random_name_special_characters() ou = udm.create_object('container/ou', name=ou_name) user = udm.create_user(position=ou, username=user_name) udm.modify_object('container/ou', dn=ou, name=ou_name_new) utils.verify_ldap_object(ou, should_exist=False) utils.verify_ldap_object(user[0], should_exist=False) new_ou = 'ou=%s,%s' % (ldap.dn.escape_dn_chars(ou_name_new), ucr.get('ldap/base')) new_user = '******' % (ldap.dn.escape_dn_chars(user_name), ldap.dn.escape_dn_chars(ou_name_new), ucr.get('ldap/base')) utils.verify_ldap_object(new_ou, should_exist=True) utils.verify_ldap_object(new_user, should_exist=True)
def __init__(self, selection=None): super(SpecialUser, self).__init__( user={ "username": random_bytestring(charset=SPECIAL_CHARSET_USERNAME), "firstname": tstrings.random_name_special_characters().encode('UTF-8'), "lastname": tstrings.random_name_special_characters().encode('UTF-8'), "description": random_bytestring(charset=SPECIAL_CHARSET), "street": random_bytestring(charset=SPECIAL_CHARSET), "city": random_bytestring(charset=SPECIAL_CHARSET), "postcode": random_bytestring(numeric=True), "profilepath": random_bytestring(charset=SPECIAL_CHARSET), "scriptpath": random_bytestring(charset=SPECIAL_CHARSET), "phone": random_bytestring(numeric=True), "homeTelephoneNumber": random_bytestring(numeric=True), "mobileTelephoneNumber": random_bytestring(numeric=True), "pagerTelephoneNumber": random_bytestring(numeric=True), "sambaUserWorkstations": random_bytestring(numeric=True), }, rename={"username": random_bytestring(charset=SPECIAL_CHARSET_USERNAME)}, container=random_string(charset=SPECIAL_CHARSET), selection=selection, )
def test_container(parent, add_user): if parent is None: parent = ucr.get('ldap/base') user_name = 'X' + uts.random_string( ) # test preserving name (case sensitivity) cn_name = uts.random_name_special_characters() cn_name_new = cn_name.upper() cn = udm.create_object('container/cn', position=parent, name=cn_name) if add_user: udm.create_user(position=cn, username=user_name) try: udm.modify_object('container/cn', dn=cn, name=cn_name_new) except AssertionError: pass lo = utils.get_ldap_connection() for dn, entry in lo.search(filter='ou=temporary_move_container_*'): to_be_removed = udm._cleanup.setdefault('container/ou', []) to_be_removed.append(dn) assert False, 'ou = %s remained' % dn new_cn = 'cn=%s,%s' % (ldap.dn.escape_dn_chars(cn_name_new), parent) new_user = '******' % (ldap.dn.escape_dn_chars(user_name), new_cn) utils.verify_ldap_object(new_cn, should_exist=True) if add_user: for dn, entry in lo.search(filter=ldap.filter.filter_format( 'uid=%s', [user_name])): assert entry.get('uid')[0] == user_name.encode( 'UTF-8' ), 'CASE SENSITIVITY: uid = %s; expected: %s' % ( entry.get('uid')[0], user_name) utils.verify_ldap_object(new_user, should_exist=True) for dn, entry in lo.search( filter=ldap.filter.filter_format('cn=%s', [cn_name_new])): assert entry.get('cn')[0] == cn_name_new.encode( 'UTF-8'), 'cn = %s; expected: %s' % (entry.get('cn')[0], cn_name_new) return new_cn
def test_organizational_unit(parent, add_user): if parent is None: parent = ucr.get('ldap/base') user_name = 'X' + uts.random_string( ) # test preserving name (case sensitivity) ou_name = uts.random_name_special_characters() ou_name_new = ou_name.upper() ou = udm.create_object('container/ou', position=parent, name=ou_name, wait_for=True) if add_user: udm.create_user(position=ou, username=user_name) try: udm.modify_object('container/ou', dn=ou, name=ou_name_new, wait_for=True) except AssertionError: pass for dn, entry in lo.search(filter='ou=temporary_move_container_*'): if dn not in existing_temporary_ous: to_be_removed = udm._cleanup.setdefault('container/ou', []) to_be_removed.append(dn) assert dn in existing_temporary_ous, 'ou = %s remained' % dn new_ou = 'ou=%s,%s' % (ldap.dn.escape_dn_chars(ou_name_new), parent) new_user = '******' % (ldap.dn.escape_dn_chars(user_name), new_ou) utils.verify_ldap_object(new_ou, {'ou': [ou_name_new]}, should_exist=True) if add_user: for dn, entry in lo.search(filter=ldap.filter.filter_format( 'uid=%s', [user_name])): assert entry.get('uid')[0] == user_name.encode( 'UTF-8' ), 'CASE SENSITIVITY: uid = %s; expected: %s' % ( entry.get('uid')[0], user_name) utils.verify_ldap_object(new_user, should_exist=True) return new_ou
def test_container_ou_rename_uppercase_rollback_with_special_characters( self, udm, ucr): """Rename a container/ou with un-moveable subobjects from lower to upper case with special characters""" user_name = uts.random_string() network_name = uts.random_string() ou_name = uts.random_name_special_characters() ou_name_new = ou_name.upper() ou = udm.create_object('container/ou', name=ou_name) wait_for_drs_replication(ldap.filter.filter_format('ou=%s', [ou_name])) udm.create_user(position=ou, username=user_name) udm.create_object('networks/network', position=ou, name=network_name, network='1.1.1.1', netmask='24') with pytest.raises(udm_test.UCSTestUDM_ModifyUDMObjectFailed) as exc: udm.modify_object('container/ou', dn=ou, name=ou_name_new) # This operation is not allowed on this object: Unable to move object ayj9blkm9k (networks/network) in subtree, trying to revert changes. assert 'Unable to move object' in str(exc.value) new_ou = 'ou=%s,%s' % (ldap.dn.escape_dn_chars(ou_name_new), ucr.get('ldap/base')) new_user = '******' % (ldap.dn.escape_dn_chars(user_name), ldap.dn.escape_dn_chars(ou_name_new), ucr.get('ldap/base')) utils.verify_ldap_object(new_ou, should_exist=True) utils.verify_ldap_object(new_user, should_exist=True) lo = utils.get_ldap_connection() for dn, entry in lo.search( filter=ldap.filter.filter_format('ou=%s', (ou_name, ))): assert entry.get('ou')[0] == ou_name.encode( 'UTF-8'), 'ou = %s; expected: %s' % (entry.get('ou')[0], ou_name)
def test_container_cn_rename_uppercase_rollback_with_special_characters( self, udm, ucr): """Rename a container/cn with un-moveable subobjects from lower to upper case special characters""" user_name = uts.random_string() network_name = uts.random_string() cn_name = uts.random_name_special_characters() cn_name_new = cn_name.upper() cn = udm.create_object('container/cn', name=cn_name) wait_for_drs_replication(ldap.filter.filter_format('cn=%s', [cn_name])) udm.create_user(position=cn, username=user_name) udm.create_object('networks/network', position=cn, name=network_name, network='1.1.1.1', netmask='24') with pytest.raises(udm_test.UCSTestUDM_ModifyUDMObjectFailed): udm.modify_object('container/cn', dn=cn, name=cn_name_new) utils.wait_for_replication_and_postrun() new_cn = 'cn=%s,%s' % (ldap.dn.escape_dn_chars(cn_name_new), ucr.get('ldap/base')) new_user = '******' % (ldap.dn.escape_dn_chars(user_name), ldap.dn.escape_dn_chars(cn_name_new), ucr.get('ldap/base')) utils.verify_ldap_object(new_cn, should_exist=True) utils.verify_ldap_object(new_user, should_exist=True) lo = utils.get_ldap_connection() for dn, entry in lo.search( filter=ldap.filter.filter_format('cn=%s', [cn_name])): assert entry.get('cn')[0] == cn_name.encode( 'UTF-8'), 'cn = %s; expected: %s' % (entry.get('cn')[0], cn_name)
def test_container_cn_creation_with_special_characters(self, udm): """Create container/cn""" cn = udm.create_object('container/cn', name=uts.random_name_special_characters()) utils.verify_ldap_object(cn)
def test_container_ou_creation_with_special_characters(self, udm): """Create container/ou with specials characters""" ou = udm.create_object('container/ou', name=uts.random_name_special_characters()) utils.verify_ldap_object(ou)