[Zope-dev] zope-tests - FAILED: 2, OK: 20, UNKNOWN: 1

Gediminas Paulauskas menesis at pov.lt
Sun Dec 9 10:56:40 UTC 2012


2012/12/7 Tres Seaver <tseaver at palladion.com>:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 12/07/2012 01:11 PM, Gediminas Paulauskas wrote:
>> 2012/12/7 Tres Seaver <tseaver at palladion.com>:
>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
>>>
>>> On 12/07/2012 01:52 AM, Marius Gedminas wrote:
>>>>>> [3]    FAILED  winbot / zope.app.i18n_py_265_32
>>>>>> https://mail.zope.org/pipermail/zope-tests/2012-December/069796.html
>>>>
>>>>>>
>>>
>>>>>>
> Error in test testNoTargetLanguage
>>> (zope.app.i18n.tests.test_translationdomain.TestTranslationDomain)
>>>> Traceback (most recent call last): File
>>>> "c:\Python26_32\lib\unittest.py", line 279, in run testMethod()
>>>> File
>>>> "c:\eggs\zope.i18n-3.8.0-py2.6.egg\zope\i18n\tests\test_itranslationdomain.py",
>>>>
>>>>
> line 99, in testNoTargetLanguage eq(translate('short_greeting',
>>>> context=context, default=42), 42) File
>>>> "c:\buildslave\zope.app.i18n\build\src\zope\app\i18n\translationdomain.py",
>>>>
>>>>
> line 74, in translate catalog_names =
>>>> self._catalogs.get(target_language, []) TypeError: Object has
>>>> default comparison
>>>
>>> Here, the 'target_langeage' returned by the negotiator is None,
>>> which the OOBTree is refusing to treat as a key (because its
>>> comparison semantics are undefined across process boundaries /
>>> Python versions)::
>>>
>>>>>> from BTrees.OOBTree import OOBTree x = OOBTree() x[None] = 1
>>> Traceback (most recent call last): File "<stdin>", line 1, in
>>> <module> TypeError: Object has default comparison
>>>
>>> Such keys haven't been allowed since::
>>>
>>> r117933 | jim | 2010-10-26 17:14:00 -0400 (Tue, 26 Oct 2010) | 7
>>> lines
>>>
>>> Bug Fixed - BTrees allowed object keys with insane comparison.
>>> (Comparison inherited from object, which compares based on
>>> in-process address.) Now BTrees raise TypeError is an attempt is
>>> made to save a key with comparison inherited from object. (This
>>> doesn't apply to old-style class instances.)
>>
>> The error happens in get, not set, should it?
>
> The C code throws the error whenever dealing with a user-supplied key
> which cannot be safely compared to existing keys.
>
>> Otherwise, a patch for zope.app.i18n to fix this case is attached
>> (not committed).
>
> +1 for your patch.

ok, committed.

-- 
Gediminas


More information about the Zope-Dev mailing list