From: Bhuvaneswaran A. <bh...@co...> - 2006-09-13 09:42:27
|
Thanks for your response. Please find my comments and a patch for test_modlist.py script. On Wed, 2006-09-13 at 10:20 +0200, Michael Ströder wrote: > Bhuvaneswaran Arumugam wrote: > > > > BUG: > > > > Currently you compare the length of old and new values. > > Judging from your patch you mean the attribute value lists. Yep. After i went through test_modlist.py cases, i observed it was because i don't use list as the value of ldap key/variable. Please find attached a patch to test_modlist.py script. I've included two test cases viz. 'case 2' (list) and 'case 3' (string). 'case 2' is ok but 'case 3' reports following error: <error> Testing function addModlist(): Testing function modifyModlist(): result_modlist is empty '[]' modifyModlist({'nisMapEntry': '-intr,hard,tcp,rsize=32768,wsize=32768,nfsvers=3 mgr:/u1/chroot//test/grue'},{'nisMapEntry': '-intr,hard,tcp,rsize=32768,wsize=32768,nfsvers=3 mgr:/u1/chroot//test/mrue'}) returns [] instead of [(0, 'nisMapEntry', '-intr,hard,tcp,rsize=32768,wsize=32768,nfsvers=3 mgr:/u1/chroot//test/mrue'), (1, 'nisMapEntry', None)]. </error> But i'm unsure whether it's the intended behavior. > > 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. > -- Regards, Bhuvaneswaran |