[PATCH] modlist.py: Compare old and new values

Michael Ströder michael at stroeder.com
Wed Sep 13 10:20:26 CEST 2006


Bhuvaneswaran Arumugam wrote:
> 
> BUG:
> 
> Currently you compare the length of old and new values.

Judging from your patch you mean the attribute value lists.

> So, it does not
> recognize the diff when there is no change in length but the actual
> string itself is changed (ex: s/usr/var/g).

It's not that easy. replace_attr_value can also be set to 1 after line
87. Could you please post an example of the error?

Best thing would be to add your errornous case as test-case to
Tests/Lib/ldap/test_modlist.py.

> Due to this bug, it returns
> empty ldif so subsequent call to modify_s (in my application) fails.

Hmm, are you using module ldif afterwards to turn the modlist into LDIF?
How does the modlist look like. Is it empty?

> <       replace_attr_value = len(old_value)!=len(new_value)
> ---
> 
>>      replace_attr_value = old_value!=new_value

Please note that old_value and new_value are actually lists of attribute
values. This line above sets only a first indicator that an attribute
has changed to avoid performance loss due to calling the function
list_dict().

Ciao, Michael.



More information about the python-ldap mailing list