On Fri, Nov 6, 2009 at 7:14 AM, Martin Aspeli <optilude+lists@gmail.com> wrote:
Something has changed in Zope 2.12 that is causing tests that use PlacelessSetup's tearDown() with Five to fail:
"/Users/optilude/.buildout/eggs/Zope2-2.12.1-py2.6-macosx-10.6-i386.egg/Products/Five/fiveconfigure.py", line 228, in cleanUp Products.meta_types = tuple([ info for info in Products.meta_types AttributeError: 'module' object has no attribute 'meta_types'
Sure enough, Products.meta_types is not set. In the Zope2 egg, Products/__init__.py contains only the setuptools boilerplate for namespace packages. I'm not sure how or where Products.meta_type is set these days.
This is all part of App.ProductContext and friends. It's also set in fiveconfigure during _registerClass or in ZopeTestCase's installProduct.
Does anyone know how to correctly fix this? We could make the tear-down code in Five more robust, obviously, but I fear that's just hiding a deeper problem?
I don't know who actually needs and reads this type of information. It's one part of the Zope2 universe I think at least Plone doesn't use anymore at all. Simply grepping for meta_types doesn't show any place that uses the information for anything useful anymore. Maybe my work in making the persistent product registry optional got rid of the last places this had been used. Hanno