[Zope-CMF] SVN: Products.GenericSetup/trunk/Products/GenericSetup/ Don't bomb out with an AttributeError when encoding an attribute

Maurits van Rees m.van.rees at zestsoftware.nl
Wed Mar 3 06:24:20 EST 2010


Wichert Akkerman, on 2010-03-03:
> On 3/3/10 11:48 , Maurits van Rees wrote:
>> Log message for revision 109595:
>>    Don't bomb out with an AttributeError when encoding an attribute
>>    with value None that is being exported; just use an empty string then.
>>    Case in point: create a Plone Site, set the MailHost settings through
>>    the Site Setup; an export of the mailhost settings would then fail if
>>    some of the values (e.g. smtp_uid) were blank (None).
>
> Might I suggest not exporting anything instead of an empty string? There 
> is a big difference between None and "".

I just tried that; this would generate a file like this:

<object name="foo_mailhost" meta_type="Mail Host" smtp_host="localhost"
   smtp_port="25"/>

An import of this file in a Plone Site worked.  But then the export
would become this:

<object name="foo_mailhost" meta_type="Mail Host" smtp_host="localhost"
   smtp_port="25" smtp_pwd="" smtp_uid=""/>

So then an import of an export gives a slightly different result; and
the tests do not like that, failing either in test_body_set or in
test_body_get, depending on how you define as self._BODY in
MailHost/tests/test_exportimport.py

So I say we keep it like this.


Alternatively, Plone could be fixed to not set None values in the mail
settings (in plone.app.controlpanel).  But I think this general fix in
GenericSetup is fine.

-- 
Maurits van Rees | http://maurits.vanrees.org/
            Work | http://zestsoftware.nl/
What are you going to create today?



More information about the Zope-CMF mailing list