Decouple the ldap searches from the unit tests.
Add docstring to single_record_search and add return statement.
Add docstring to search and add return statement.
Add the 'return' where it should have been.  Oops.
Add test_single_record_search_error_conditions() and complete test_single_record_search()
Remove unnecessary comments.
Add test_update_entry_attributes() method.
Update method call.
Add _modify_ldap_entry() method and convenience wrappers [update_entry_attributes(), add_entry_attributes, delete_entry_attributes()]
Complete test_update_entry_attributes()
Add more granular exception handling for _modify_ldap_entry.
Improve test coverage for update_entry_attributes()
Create unit test for add_entry_attributes()
Create test_create_ldap_entry_and_delete_ldap_entry() unit test.
Rename LDAPDNError -> LDAPEntryError
Add create_ldap_entry() and delete_ldap_entry() methods.
Add simple error handling to delete_ldap_entry() and remove self.logger property as it doesn't logically belong in this class.
Add test_delete_ldap_entry_error_conditions() test.
Change ldap searches from asyncronous to syncronous.
Create helper methods to eliminate code duplication, add documentation, and reorder methods.