- Don't delete attribute when moving an entry to new subtree with unchanged rdn.
- Add context manager support to :class:`~mockldap.MockLdap`.
- Drop support for Python 2.6 and 3.3.
- Use pyldap under Python 3.
- A simple implementation of passwd_s.
- Fixes for DN case-insensitive matching.
- Support SSHA passwords with salt of arbitrary length.
- Don't support {CRYPT} passwords if crypt can't be imported.
Add support for {CRYPT} and {SSHA} passwords.
Thanks to Dmitri Bogomolov.
- Raise ldap.ALREADY_EXISTS when renaming an object and the target already exists.
mockldap now provides experimental Python 3 support. Python 2.5 was dropped.
To sum up, mockldap works with Python 2.6, 2.7, 3.3 and 3.4.
Since python-ldap still isn't making progress toward Python 3, if you're using Python 3, you need to install a fork:
$ pip install git+https://github.com/rbarrois/python-ldap.git@py3
Thanks to Aymeric Augustin for making this happen.
- A previous fix to modify_s was erroneous. section 4.6 of RFC 4511 states that modify operations will create new attributes and delete empty ones as necessary.
Warning
mockldap wil no longer raise ldap.UNDEFINED_TYPE. mockldap has no schema support, so it assumes that all attributes are valid.
- Filter strings with '&', '|', and '!' in the assertion values should now be parsed correctly.
- Add whoami_s() method.
- MOD_DELETE should not remove the key from the directory. Thanks to https://bitbucket.org/jlec.
- Raise :exc:`~ldap.INVALID_DN_SYNTAX` for invalid DNs.
- Raise :exc:`~ldap.FILTER_ERROR` on filter string parse errors.
- Include the full method call signature in :exc:`~mockldap.SeedRequired` exceptions.
mockldap is now compatible with Python 2.5.
Since python-ldap doesn't seem to be making progress toward Python 3, there's no need to drop Python 2.5 support here yet.
- simple_bind_s now raises :exc:`~ldap.INVALID_CREDENTIALS` instead of :exc:`~ldap.NO_SUCH_OBJECT` if the DN does not exist. This is consistent with the behavior of python-ldap.
Minor fixes for packaging, installation, and testing.
Initial release.