Maurits van Rees wrote:
> 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.

I think the fix is in the wrong place. I doubt None is a valid value for 
a DOM attribute. So instead of working around invalid data we should 
make sure only valid data is written to the DOM.

AFAICS MailHostXMLAdapter._exportNode is the right place to fix this.

Cheers, Yuppie
_______________________________________________
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests

Reply via email to