I encountered problems when running tests and I got this kind of errors:
Set up plone.app.testing.layers.PloneFixture Traceback (most recent call last):
File "/Volumes/SSD/Dev/eggs/zope.testing-3.9.7-py2.7.egg/zope/testing/testrunner/runner.py", line 366, in run_layer
setup_layer(options, layer, setup_layers)
File "/Volumes/SSD/Dev/eggs/zope.testing-3.9.7-py2.7.egg/zope/testing/testrunner/runner.py", line 628, in setup_layer
setup_layer(options, base, setup_layers)
.... many lines !!!
ZopeXMLConfigurationError: File "/Volumes/SSD/Dev/eggs/plone.schemaeditor-2.0.17-py2.7.egg/plone/schemaeditor/configure.zcml", line 8.2-8.36
ZopeXMLConfigurationError: File "/Volumes/SSD/Dev/eggs/plone.protect-3.0.23-py2.7.egg/plone/protect/configure.zcml", line 33.4-36.10
ImportError: cannot import name file
Tearing down left over layers:
Tear down plone.testing.z2.Startup in 0.007 seconds.
Tear down plone.testing.zca.LayerCleanup in 0.000 seconds.
After hours, I found that the problem came from the order of imports: if dexteritytextindexer is imported before NamedBlobFile like this
from collective import dexteritytextindexer
from plone.namedfile.field import NamedBlobFile
But, code-analysis with the [recommended] plugins requires the use of isort which put dexteritytextindexer above NamedBlobFile!
The only workaround I found was to de-activate [recommended] plugins of code-analysis and select only a few of them, but not the isort checking.
Note that there is no problem when running the instance (Plone 5.0.8).
Also, the versions of collective.dexteritytextindexer (2.1.1, 2.2.0, 2.2.1) have no impact and the issue reported at https://github.com/collective/collective.dexteritytextindexer/issues/25 seems to be a different use case...
Any idea ?