Change log
2.2 (unreleased)
2.1 (2018-06-29)
- test and declare support for Python 3.7
2.0 (2017-10-29)
- Python 3 compatibility
- Move from
python-ldap
to pyldap
for Python 3 compatibility
- PEP 8 code cleanup
- added Travis CI automatic testing configuration
- use pkgutil-style namespace declaration
- package cleanup (
.gitignore
, MANIFEST.in
, README.rst
)
- docs cleanup (
Makefile
, conf.py
)
- tests cleanup (
tox.ini
, .travis.yml
)
- remove unsupported documentation bits
- fix coverage tests to only test this package
- remove coveralls from the Travis CI configuration
- make the character sets used for communicating with the LDAP libraries
(
ldap_encoding
) and the calling side (api_encoding
)
configurable in the LDAPConnection
constructor.
1.5 (2012-04-20)
- Factored the
dataflake.ldapconnection.tests.fakeldap
module
into a separate package dataflake.fakeldap
- Restricted the supported Python versions to 2.6 and 2.7.
- removed old test_suite fossils
1.4 (2012-04-03)
- Added a simple tox configuration to quickly test with different
Python versions. As a result of successful testing, re-declare
compatibility with Python 2.4 and 2.5.
- Moved the documentation build dependencies into a setup extra so
building them without buildout becomes easier.
- Added setup.py aliases for creating a testing sandbox and the
documentation dependencies, and use them in the buildout
configuration.
- Extended
fakeldap.RaisingFakeLDAPConnection
to accept a list
of exceptions to raise. On each call to the method that is set
to raise the exception, the first item in the exception list
is removed and raised. This allows testing code areas nested in
more than one try/except
clause.
1.3 (2012-03-23)
- Update bootstrap.py to what ships with zc.buildout 1.5.2
- fakeldap: Add email characters and some non-ASCII characters to
FLTR_RE, to be able to use them in searches. (Stefan Holek)
- fakeldap: Add unbind_s API. (Stefan Holek)
- fakeldap: Deep-copy entries before returning them. (Stefan Holek)
- fakeldap: Only return requested attributes. (Stefan Holek)
- fakeldap: Optionally disable password hashing. (Stefan Holek)
- fakeldap: Optionally maintain the ‘memberOf’ attribute of group
members. (Stefan Holek)
- connection: Clean up encoding and decoding of values for when the
api_encoding is set to None. (Stefan Holek)
- connection: New ‘raw’ kwarg for the search API. If true, search
results are returned in the ldap_encoding. (Stefan Holek)
- connection: Store a connection’s bind_dn and bind_pwd as is, and
encode them before use. (Stefan Holek)
- connection: Fix a condition that caused rebinding to fail if only
one of bind_dn and bind_pwd had changed. (Stefan Holek)
- connection: Add disconnect API. (Stefan Holek)
- connection: Allow to delete subsets from multi-valued attributes.
(Stefan Holek)
- switched documentation to point to the new Git repository
1.2 (2010-08-09)
- Using
id()
is not random enough for a unique hash.
1.1 (2010-05-09)
- Updated Sphinx Makefile and configuration to be closer
to the latest Sphinx version
- Greatly expand installation and testing documentation using
ideas from Tres Seaver
1.0 (2010-04-12)
- Bug: fakeldap.FakeLDAPConnection wildcard searches did not
work correctly and returned too many matches.
- Bug: Improve behavior matching of standard python-ldap and
fakeldap by raising ldap.NO_SUCH_OBJECT where operations
target non-existing entries.
- Bug: Improve behavior matching of standard python-ldap and
fakeldap by raising ldap.ALREADY_EXISTS where operations
duplicate existing entries.
- Bug: Added tests for all fakeldap.FakeLDAPConnection methods
and added tests for some other module classes and functions.
- Refactoring: Removed the fakeldap.initialize and explode_dn
functions. They were either not needed or needlessly
duplicating existing python-ldap features.
- Bug: python-ldap will no longer support the LDAP connection
class ldap.ldapobject.SmartLDAPObject with version 2.3.11.
Replacing it with ReconnectLDAPObject.
- Bug: If a connection raised an LDAP exception inside
start_tls_s handling was broken.
- Feature: You can now add server definitions for servers that
support the StartTLS extended operation. Whereas the existing
secure connections using the
ldaps
protocol are encrypted
throughout, StartTLS is used through an unencrypted connection
to request all further traffic to be encrypted.
- Refactoring: Switch tests to using the fakeldap LDAP connection
object wherever possible, and correct a few fakeldap and
LDAPConnection misbehaviors along the way.
1.0b1 (2010-02-01)
- Performing more rigorous input checking for DNs
- Made encoding/decoding more flexible by adding configuration
flags for the encoding used by the LDAP server and the
encoding for calls to and return values from the connection API.
The default is backwards compatible (UTF-8 for the LDAP server
encoding, and Latin-15 for the API encoding).
- Factored the connection tests module into a series of modules,
it was getting large and unwieldy.
- move the actual python-ldap connection from an attribute into
a module-level cache since those connections cannot be
pickled.
- Removed the rdn_attr attribute, which was used to try and
determine if a modify operation should trigger a modrdn. We
now fish the RDN attribute from the record’s DN for this
purpose.
- Changed the way internal logging is done to avoid storing logger
objects onto the connection instance unless it is explicitly
specified. This means the instance is picklable when using the
default logging.
- Removed the bind method. There was no good reason to expose it
as part of the public API, and since bind operations are
re-done as part of all operations it would only serve to
confuse users.
Users who want to use credentials other than the credentials
configured into the connection instance should pass them along
explicitly when invoking the operation.
- The search method now provides a default search subtree search
scope if none is specified.
- Creating a new instance does not require passing server data like
host, port and protocol anymore.
- replaced several methods with better alternatives from python-ldap,
which also requires upping the dependency to python-ldap>=2.3.0,
and fixing up the tests.
- pare down fakeldap to not try and provide all kinds of constants
from python-ldap, but just a LDAP connection class.
- add a new method “bind” to rebind a connection, if the last bind
differs from the desired bind.
- rename variable name “filter” with “fltr” to stop shadowing the
Python function “filter”.
- added an interfaces file as documentation and “contract”. This adds
a dependency on zope.interface.
- removed unused argument “login_attr” from constructor argument list
- LDAPConnection objects now accept more than a single server definition.
Failover between connections is triggered by connection or operation
timeouts. Added API to add and remove server definitions at runtime.
- all those methods causing LDAP operations to be performed accept
optional bind_dn and bind_pwd named arguments to rebind with the
provided credentials instead of those credentials stored in the
LDAPConnection instance. This represents an API change for the
insert, modify and delete methods.
0.4 (2008-12-25)
- fakeldap bug: the modify_s method would expect changes of type MOD_DELETE
to come with a list of specific attribute values to delete. Now the
attribute will be deleted as a whole if the expected list is None, this
reflects actual python-ldap behavior better.
- now we are exercising the fakeldap doctests from within this package,
they used to be run from Products.LDAPUserFolder, which was not cleaned
up when the fakeldap module moved to dataflake.ldapconnection.
0.2 (2008-08-27)
- backport a fix applied to the LDAPUserFolder FakeLDAP module to handle
BASE-scoped searches on a DN.