File diff cb01d2d10fca → d77f12671189
roles/ldap_server/molecule/default/tests/helpers.py
Show inline comments
 
new file 100644
 
import io
 

	
 
import ldif
 

	
 

	
 
def parse_ldif(ldif_input):
 
    """
 
    Helper function that parses the passed-in LDIF string. This is a
 
    simple wrapper around the Python LDAP ldif.LDIFRecordList class.
 

	
 
    Entries are returned as list of (dn, attributes)
 
    tuples. Attributes are represented by a dictionary mapping
 
    attribute names to list of associated values.
 

	
 
    :param ldif_input: LDIF to parse.
 
    :type ldif_input: str
 

	
 
    :returns: List of parsed entries.
 
    :rtype: list[tuple(str, dict{str: list[str]})]
 

	
 
    Returns:
 
    """
 

	
 
    parser = ldif.LDIFRecordList(io.StringIO(ldif_input))
 

	
 
    try:
 
        parser.parse()
 
    except Exception as e:
 
        raise ValueError("Failed to parse input: %s" % str(e))
 

	
 
    return parser.all_records