Files @ 449e6423959c
Branch filter:

Location: majic-ansible-roles/roles/ldap_server/molecule/default/tests/helpers.py

branko
MAR-151: Added support for Debian 10 Buster to xmpp_server role:

- Updated role reference documentaiton.
- Updated role meta information.
- Updated tests.
- Enable lower-level TLS protocols (1.0/1.1) in global OpenSSL
configuration file on Buster in order to be able to test the
xmpp_server_tls_protocol parameter (otherwise Prosody completely
refuses to use them even if listed in its configuration).
- Move stretch-specific tests into its own file (for backported
lua-ldap library), and run them on Debian 9 Stretch machines only.
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