# `slapdtest` Spawning test instances of OpenLDAP’s slapd server

The module is used for testing python-ldap itself but can be used for automatically testing any OpenLDAP-based configuration setup.

This module is pure Python and does not rely on any non-standard modules. Therefore it can be used stand-alone without the rest of the python-ldap package.

Test fixtures for the popular pytest framework are developed in an external project, pytest-ldap.

## Functions

## Classes

class slapdtest.SlapdObject

  Controller class for a slapd instance, OpenLDAP’s server.

  This class creates a temporary data store for slapd, runs it listening on a private Unix domain socket and TCP port, and initializes it with a top-level entry and the root user.

  When a reference to an instance of this class is lost, the slapd server is shut down.

  An instance can be used as a context manager. When exiting the context manager, the slapd server is shut down and the temporary data store is removed.

  Parameters:

    openldap_schema_files – A list of schema names or schema paths to load at startup. By default this only contains core.

  Changed in version 3.1: Added context manager functionality

  gen_config()

    generates a slapd.conf and returns it as one string

    for generating specific static configuration files you have to override this method

  ldapadd(ldif, extra_args=None)

    Runs ldapadd on this slapd instance, passing it the ldif content

  ldapdelete(dn, recursive=False, extra_args=None)

    Runs ldapdelete on this slapd instance, deleting ‘dn’

  ldapmodify(ldif, extra_args=None)

    Runs ldapadd on this slapd instance, passing it the ldif content

  ldapwhoami(extra_args=None)

    Runs ldapwhoami on this slapd instance

  restart()

    Restarts the slapd server with same data

  setup_rundir()

    creates rundir structure

    for setting up a custom directory structure you have to override this method

  slapadd(ldif, extra_args=None)

    Runs slapadd on this slapd instance, passing it the ldif content

  start()

    Starts the slapd server process running, and waits for it to come up.

  stop()

    Stops the slapd server, and waits for it to terminate and cleans up

  wait()

    Waits for the slapd process to terminate by itself.

class slapdtest.SlapdTestCase(methodName='runTest')

  test class which also clones or initializes a running slapd

  server_class

    alias of `SlapdObject`

  classmethod setUpClass()

    Hook method for setting up class fixture before running tests in the class.

  classmethod tearDownClass()

    Hook method for deconstructing the class fixture after running all tests in the class.