{ "info": { "author": "Rapha\u00ebl Barrois", "author_email": "raphael.barrois+volatildap@polytechnique.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development", "Topic :: Software Development :: Testing", "Topic :: System :: Systems Administration :: Authentication/Directory :: LDAP" ], "description": "volatildap\n==========\n\n\n.. image:: https://secure.travis-ci.org/rbarrois/volatildap.png?branch=master\n :target: http://travis-ci.org/rbarrois/volatildap/\n\n.. image:: https://img.shields.io/pypi/v/volatildap.svg\n :target: https://pypi.python.org/pypi/volatildap/\n :alt: Latest Version\n\n.. image:: https://img.shields.io/pypi/pyversions/volatildap.svg\n :target: https://pypi.python.org/pypi/volatildap/\n :alt: Supported Python versions\n\n.. image:: https://img.shields.io/pypi/wheel/volatildap.svg\n :target: https://pypi.python.org/pypi/volatildap/\n :alt: Wheel status\n\n.. image:: https://img.shields.io/pypi/l/volatildap.svg\n :target: https://pypi.python.org/pypi/volatildap/\n :alt: License\n\n``volatildap`` provides simple helpers for testing code against a LDAP database.\n\nIts main features include:\n\n* **Simple configuration:** Don't provide anything the LDAP server will start with sane defaults\n* **Built-in cleanup:** As soon as the test ends / the test process exits, the server is instantly removed\n* **Cross-distribution setup:** Automatically discover system paths for OpenLDAP binaries, schemas, etc.\n\n\nUsage\n-----\n\n.. code-block:: python\n\n import volatildap\n\n class MyTests(unittest.TestCase):\n\n @classmethod\n def setUpClass(cls):\n super(MyTests, cls).setUpClass()\n cls._slapd = volatildap.LdapServer(suffix='dc=example,dc=org')\n\n def setUp(self):\n # Will start the server, or reset/restart it if already started from a previous test.\n self._slapd.start()\n\n def test_something(self):\n conn = ldap.connection(self._slapd.uri)\n # Do some tests\n\n def test_with_data(self):\n # Load some data\n self._slapd.add({'ou=people': {'cn': [b'Users']}})\n # Run the tests\n\n\nThe ``volatildap.LdapServer`` provides a few useful methods:\n\n``start()``\n Start or restart the server.\n This will:\n\n * Clear all data, if any\n * Start the server if it's not yet running\n * Populate the initial data\n\n``stop()``\n Stop the server.\n\n This will clean up all data and kill the proces.\n\n``add(data)``\n Add some data, see the ``initial_data`` structure below.\n\n``get(dn)``\n Retrieve an object by its distinguished name;\n\n Returns a dictionary mapping an attribute to the list of its values, as bytes.\n\n Raises ``KeyError`` if the distinguished name is unknown to the underlying database.\n\n``reset()``\n Restore the server to its pristine, initial state.\n This includes loading the inital_data.\n\n\nConfiguration\n-------------\n\nThe ``volatildap.LdapServer`` class accepts a few parameters:\n\n``suffix``\n The suffix to use for the LDAP tree\n\n *Default:* ``dc=example,dc=org``\n\n``rootdn``\n The administrator account for the LDAP server\n\n *Default:* ``cn=testadmin,dc=example,dc=org``\n\n``rootpw``\n The administrator password.\n\n *Default:* A random value, available through ``LdapServer.rootpw``\n\n``schemas``\n List of schemas to load; can be either a simple name (e.g ``cosine.schema``; looked up in openldap installation); or a path to a custom one.\n\n *Default:* ``['core.schema']``\n\n``initial_data``\n Dict mapping a distinguished name to a dict of attribute/values:\n\n .. code-block:: python\n\n slapd(initial_data={\n 'ou=people': {\n 'objectClass': ['organizationalUnit'],\n 'cn': ['People'],\n },\n })\n\n **Note:** When adding data, the suffix can be omitted on objects DNs.\n\n *Default:* ``{}``\n\n``skip_missing_schemas``\n When loading schemas, this flag instructs ``volatildap`` to continue if some schemas\n can't be found.\n\n *Default:* ``False``\n\n``port``\n The port to use.\n\n *Default:* An available TCP port on the system\n\n``slapd_debug``\n The debug level for slapd; see ``slapd.conf``\n\n *Default:* ``0``\n\n``max_server_startup_delay``\n The maximum delay allowed for server startup, in seconds.\n\n *Default:* ``30``\n\n``tls_config``\n A set of TLS certificate files for configuring the server.\n A valid set for ``localhost`` is provided as ``volatildap.LOCALHOST_TLS_CONFIG``, but users may also provide their own:\n\n .. code-block:: python\n\n tls_config = volatildap.TLSConfig(\n root=read(ca_path),\n chain=[\n read(intermediate_path),\n ],\n certificate=read(certificate_path),\n key=read(key_path),\n )\n\n\nPer-distribution specificities\n------------------------------\n\nUbuntu\n Under Ubuntu, the default AppArmor policy does not allow ``slapd`` (the LDAP daemon) to read temporary folders.\n Users should update the ``/etc/apparmor.d/usr.sbin.slapd`` file and add ``/tmp/** rw`` there.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://pypi.python.org/pypi/volatildap/", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rbarrois/volatildap/", "keywords": "ldap,test,openldap,slapd", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "volatildap", "package_url": "https://pypi.org/project/volatildap/", "platform": "OS Independent", "project_url": "https://pypi.org/project/volatildap/", "project_urls": { "Download": "https://pypi.python.org/pypi/volatildap/", "Homepage": "https://github.com/rbarrois/volatildap/" }, "release_url": "https://pypi.org/project/volatildap/1.3.0/", "requires_dist": null, "requires_python": "", "summary": "Temporary slapd launcher for testing purposes", "version": "1.3.0" }, "last_serial": 5271949, "releases": { "0.1.0": [], "1.0.0": [ { "comment_text": "", "digests": { "md5": "527c04927bfb1f938afc43a71fc62886", "sha256": "2054d486bb4125538cd3747fc215aae4e0016eb7d04f6fd11a49a9d56b2a6fb0" }, "downloads": -1, "filename": "volatildap-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "527c04927bfb1f938afc43a71fc62886", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 10471, "upload_time": "2016-06-01T20:33:06", "url": "https://files.pythonhosted.org/packages/c0/0e/d07e65202ce8769a37dc99091e91e49fa35315604bfa657f6a144f36aae5/volatildap-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2650bafabcbb19c1d97cd1b95e01ded", "sha256": "4c8a398bbf0078624f749aea4f84cd9278e708b579351a2840cef651f88e9380" }, "downloads": -1, "filename": "volatildap-1.0.0.tar.gz", "has_sig": false, "md5_digest": "c2650bafabcbb19c1d97cd1b95e01ded", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8595, "upload_time": "2016-06-01T20:33:02", "url": "https://files.pythonhosted.org/packages/d9/01/c965ad125da2189ebdb9fa52511d5a1736ba838fc1aab8d2a3eb894d0551/volatildap-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "9152071385b5a287276eb34dd73e4d9f", "sha256": "84a1531f4f65f13780c3658df8cf6a96cf239dc31dc86a2254dec1777229c3ab" }, "downloads": -1, "filename": "volatildap-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9152071385b5a287276eb34dd73e4d9f", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 10434, "upload_time": "2016-06-01T21:02:26", "url": "https://files.pythonhosted.org/packages/78/66/d04179136720fa59f16d957fcb39c5450ff3c88d1469cfdd27699801b7f4/volatildap-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed25c9a86982bb53a8d134336fff5459", "sha256": "456c8263337ffa529cb1082307c0c53e6c1ca8c4d843f4b5e3538baf1c00622f" }, "downloads": -1, "filename": "volatildap-1.0.1.tar.gz", "has_sig": false, "md5_digest": "ed25c9a86982bb53a8d134336fff5459", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8617, "upload_time": "2016-06-01T21:02:22", "url": "https://files.pythonhosted.org/packages/9e/a9/a85950fb4014fe8997defae73c0126ccc717134fbbce07754ce3fefa2b43/volatildap-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "d723ae2ad79d854749a637909f09b5e2", "sha256": "d5e6fba0010e4d9a25bdc89496fea9d6acac1573905a413dc0b5171724ab5123" }, "downloads": -1, "filename": "volatildap-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d723ae2ad79d854749a637909f09b5e2", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 10473, "upload_time": "2016-06-01T23:05:46", "url": "https://files.pythonhosted.org/packages/a6/f6/18fb7a61ef555a5c7810e826f968c5b81f190c88639b98271c6c5803f1e1/volatildap-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "217635fcaea5e386612849be59d90648", "sha256": "3f44128f2a06a7935cd88f5b2d8678b39e58eb1fa9d84732e3057105880de7ca" }, "downloads": -1, "filename": "volatildap-1.0.2.tar.gz", "has_sig": false, "md5_digest": "217635fcaea5e386612849be59d90648", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8713, "upload_time": "2016-06-01T23:05:41", "url": "https://files.pythonhosted.org/packages/11/78/0485d6febb85fcf4d982ffbf4e4f2d3c845430bf4fdf81ada60c86ff74e9/volatildap-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "1e57e1fb68759fc195de9ab774933b50", "sha256": "123cdcda0f00085d8c36dea673cdbaa846cadbf4471b91db97fc2b9bd548491d" }, "downloads": -1, "filename": "volatildap-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1e57e1fb68759fc195de9ab774933b50", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 10768, "upload_time": "2017-01-17T12:24:30", "url": "https://files.pythonhosted.org/packages/4b/fc/f42fd0b9707293f2a383999d71a565222c2a4df803fe3bedca82f4d9cfe0/volatildap-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3aacb74dffac252823258fa32c43cb0f", "sha256": "66e63a3fd511e435d1de013a13ad51dbbc59e7b941d7aacb852d41a7b8175875" }, "downloads": -1, "filename": "volatildap-1.1.0.tar.gz", "has_sig": false, "md5_digest": "3aacb74dffac252823258fa32c43cb0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15118, "upload_time": "2017-01-17T12:24:28", "url": "https://files.pythonhosted.org/packages/fb/58/43007d399cc5e8c7ac02075ff17b2dd82f4268331ff8ef5638c50188f80b/volatildap-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "549fd48b5e18056242263e5e6e932e57", "sha256": "564d2be28a0b06f4e61ae28f78921dc6e2168186d412285932aa7a7516715ad5" }, "downloads": -1, "filename": "volatildap-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "549fd48b5e18056242263e5e6e932e57", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 8266, "upload_time": "2018-07-28T13:56:00", "url": "https://files.pythonhosted.org/packages/6d/60/0151cbc4b165ca901b84bd38edfd3cf1039d52143d064e1e8bb77f82ea29/volatildap-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f6b216ab011837921592039678bdc2d", "sha256": "30e065ff11188b11203e60dac127507cb23e2a5a95ac60342daf219e4eb267cc" }, "downloads": -1, "filename": "volatildap-1.2.0.tar.gz", "has_sig": false, "md5_digest": "6f6b216ab011837921592039678bdc2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15403, "upload_time": "2018-07-28T13:55:59", "url": "https://files.pythonhosted.org/packages/18/a3/b3d6cf1624b19319c7139c947b0ed65c7dca68aab7bf0a5ace3b21833480/volatildap-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "5b764e139f003087d4b406b19af74288", "sha256": "b29ef3fedb004be64d799a4a3e4d961a1cc85d0cc85bb216a3e5c4ece3962d1b" }, "downloads": -1, "filename": "volatildap-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5b764e139f003087d4b406b19af74288", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10973, "upload_time": "2018-08-08T10:08:20", "url": "https://files.pythonhosted.org/packages/ec/c3/af174f04eeb322426a76c9b77c7d9f2f4bb0836f7997a3a0e84dfb78e5c2/volatildap-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1331667ce6d5c4e5d19c36145afdf001", "sha256": "6b2262e58a5a3f2e5482d54ee49980c16724c58f228d0bb8920d32dbbad1d376" }, "downloads": -1, "filename": "volatildap-1.2.1.tar.gz", "has_sig": false, "md5_digest": "1331667ce6d5c4e5d19c36145afdf001", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12687, "upload_time": "2018-08-08T10:08:23", "url": "https://files.pythonhosted.org/packages/91/f3/8917e7c98deac27befe51dabae8d44e8b0ca07365dc8cdba0c43348ee562/volatildap-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "3232ba5f368c4f20af28fb7ec1aff762", "sha256": "4140aada9cc9e4e2b77260583cbdb3b5f227be4a666538d96fe352642388cf33" }, "downloads": -1, "filename": "volatildap-1.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3232ba5f368c4f20af28fb7ec1aff762", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11022, "upload_time": "2018-08-08T10:56:41", "url": "https://files.pythonhosted.org/packages/2f/7c/9ec4e42dbf1c7fc391653d78b52b33614626a949bb11b7a8bb0f3e5c90e2/volatildap-1.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa09dc29c2bccf4cea9e3de98035b5f8", "sha256": "529b915d84fb1816cf3bacd4acaf6fe00e284e4430c856edc45a712a3afe9ee2" }, "downloads": -1, "filename": "volatildap-1.2.2.tar.gz", "has_sig": false, "md5_digest": "fa09dc29c2bccf4cea9e3de98035b5f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12749, "upload_time": "2018-08-08T10:56:43", "url": "https://files.pythonhosted.org/packages/87/1d/d86df17185840d1e1bfe11a530ed61ddd7b27deceec56690dc515e797cd5/volatildap-1.2.2.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "42379b0c72eaf1dc8126c10f7dba16aa", "sha256": "d9ef3ee7fcdf8d3ae1dd243e0a8c3892e404e4552caa60153fa0de97287bcfc6" }, "downloads": -1, "filename": "volatildap-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "42379b0c72eaf1dc8126c10f7dba16aa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13422, "upload_time": "2019-05-15T11:32:48", "url": "https://files.pythonhosted.org/packages/a8/3c/980994abfce5c138a554be3042a4d3e137fc55cf1ce8f5ec761508299092/volatildap-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cb7bf27e2d5b33eff1bfa48d04704e11", "sha256": "7ef4cac02c4f907b87d5e3f5e872287a874d0c0d0a7c1054a8caae8e9c17b367" }, "downloads": -1, "filename": "volatildap-1.3.0.tar.gz", "has_sig": false, "md5_digest": "cb7bf27e2d5b33eff1bfa48d04704e11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20382, "upload_time": "2019-05-15T11:32:50", "url": "https://files.pythonhosted.org/packages/57/f6/9fce31e6f1d47bfc827d969de3d7d798acbb806124a7eb7c0b31781db203/volatildap-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "42379b0c72eaf1dc8126c10f7dba16aa", "sha256": "d9ef3ee7fcdf8d3ae1dd243e0a8c3892e404e4552caa60153fa0de97287bcfc6" }, "downloads": -1, "filename": "volatildap-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "42379b0c72eaf1dc8126c10f7dba16aa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13422, "upload_time": "2019-05-15T11:32:48", "url": "https://files.pythonhosted.org/packages/a8/3c/980994abfce5c138a554be3042a4d3e137fc55cf1ce8f5ec761508299092/volatildap-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cb7bf27e2d5b33eff1bfa48d04704e11", "sha256": "7ef4cac02c4f907b87d5e3f5e872287a874d0c0d0a7c1054a8caae8e9c17b367" }, "downloads": -1, "filename": "volatildap-1.3.0.tar.gz", "has_sig": false, "md5_digest": "cb7bf27e2d5b33eff1bfa48d04704e11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20382, "upload_time": "2019-05-15T11:32:50", "url": "https://files.pythonhosted.org/packages/57/f6/9fce31e6f1d47bfc827d969de3d7d798acbb806124a7eb7c0b31781db203/volatildap-1.3.0.tar.gz" } ] }