>>> - The CatalogTool tests set up the adapter at the moment, as a lot of
>>> the catalog tests require the adapter to work properly. This is done in
>>> the _makeContent method as it applied to most tests that used the dummy
>>> content. However, I think it belongs somewhere else, but I wasn't sure
>>> whether that place was a layer, a setup method or somewhere else. Any
>> I agree it belongs somewhere else. Maybe a registerWrapper method. But
>> can't we make the adapter lookup in catalog_object optional and wouldn't
>> that make test setups simpler?
> Agreed. I had expected that the catalog would do a queryAdapter, and
> default to the existing wrapper class if not found.
Makes sense for BBB - it's possible that someone might be inheriting
from the Catalog but not loading the adapter registrations, in which
case their code would just break.
Can I suggest the following logic:
1. if the object already implements the IIndexableObject marker
interface, no wrapping is required;
2. otherwise, adapt to IIndexableObject to do the wrapping;
3. if no adapter is registered, fall back to the existing
IndexableObjectWrapper class for BBB.
In the case of 3, I would like to issue some deprecation warning or log
message to alert that a registration is required in future. As 2.2.0 is
not yet released, is it possible/desirable to make it a deprecation?
Zope-CMF maillist - Zope-CMF@lists.zope.org
See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests