[Zope-dev] Acquisition wrapped objects do not behave well on unicode call

David Glick davidglick at groundwire.org
Tue Mar 1 17:35:33 EST 2011


On 3/1/11 11:57 AM, Christian Zagrodnick wrote:
> This change introduces a regression when calling unicode on wrapped
>>> objects that implement __str__ but not __unicode__. Essentially it is
>>> now doing the equivalent of str(aq_base(obj)) ... __str__ used to get a
>>> wrapped object as 'self', but now it is unwrapped.
>>>
>>> Here's a failing test that can be added to Acquisition's TestUnicode
>>> test case to demonstrate the issue:
>>>
>>> def test_str_fallback_is_still_wrapped(self):
>>> class A(Acquisition.Implicit):
>>> def __str__(self):
>>> return str(len(Acquisition.aq_chain(self)))
>>> wrapped = A().__of__(A())
>>> self.assertEqual(u'2', unicode(wrapped))
>>>
>>> This is currently causing some regressions in Plone tests.
>> I'll have a look at it. Thanks for spotting that.
> Fixed in r120651 (trunk)
>
> - Fixed bug: When an object did not implement ``__unicode__``, calling
>    ``unicode(wrapped)`` was calling ``__str__`` with an unwrapped ``self``.
>
> Is the situation with Plone better now?
>
Yes, this fixes the test failures we were seeing before. Thanks!
David


----------		
David Glick
 Web Developer
 davidglick at groundwire.org
 206.286.1235x32

Groundwire: You Are Connected		
 http://groundwire.org		

Online tools and strategies for the environmental movement.  Sign up for Groundwire News!
 http://groundwire.org/email-capture




More information about the Zope-Dev mailing list