Python 迁移到plone.app.testing后测试模块导入失败-显然是循环导入

Python 迁移到plone.app.testing后测试模块导入失败-显然是循环导入,python,testing,plone,Python,Testing,Plone,我在将我们的Plone站点迁移到使用Plone.app.testing时遇到了一个问题。在控制台上输出的第一行是消息Test module import failures C:\sandbox\cms.buildout>bin\test -s soschildrensvillages Test-module import failures: Module: soschildrensvillages.contenttypes.tests.test_portlet_concept_news

我在将我们的Plone站点迁移到使用Plone.app.testing时遇到了一个问题。在控制台上输出的第一行是消息
Test module import failures

C:\sandbox\cms.buildout>bin\test -s soschildrensvillages
Test-module import failures:

Module: soschildrensvillages.contenttypes.tests.test_portlet_concept_news

Traceback (most recent call last):
...
  File "c:\sandbox\cms.buildout\src\soschildrensvillages\soschildrensvillages\contenttypes\content\concept_folder.py", line 7, in <module>
    from plone.app.folder.folder import ATFolder
  File "c:\sandbox\cms.buildout\eggs\plone.app.folder-1.0.5-py2.7.egg\plone\app\folder\folder.py", line 4, in <module>
    from Products.ATContentTypes.interface import IATFolder
  File "c:\sandbox\cms.buildout\eggs\products.atcontenttypes-2.1.13-py2.7.egg\Products\ATContentTypes\__init__.py", line 32, in <module>
    import Products.ATContentTypes.content
  File "c:\sandbox\cms.buildout\eggs\products.atcontenttypes-2.1.13-py2.7.egg\Products\ATContentTypes\content\__init__.py", line 7, in <module>
    import Products.ATContentTypes.content.folder
  File "c:\sandbox\cms.buildout\eggs\products.atcontenttypes-2.1.13-py2.7.egg\Products\ATContentTypes\content\folder.py", line 19, in <module>
    from plone.app.folder import folder
ImportError: cannot import name folder
我不确定有人在这里需要帮助的细节是什么,但是如果有人能给我一些建议,我将不胜感激

我们的testing.py看起来像

products = ('collective.lineage', 'soschildrensvillages')


class SOSChildrenLayer(PloneWithPackageLayer):

    defaultBases = (PLONE_FIXTURE,)

    def __init__(self):
        super(SOSChildrenLayer, self).__init__(
                zcml_filename='configure.zcml', zcml_package=soschildrensvillages,
                additional_z2_products=products, gs_profile_id='soschildrensvillages:default'
        )

    def setUpZCMLFiles(self):
        super(SOSChildrenLayer, self).setUpZCMLFiles()
        self.loadZCML(name='overrides.zcml', package=soschildrensvillages)

    def tearDownZope(self, app):
        super(SOSChildrenLayer, self).tearDownZope(app)
        for product in products:
            z2.uninstallProduct(app, product)


SOS_CHILDREN_FIXTURE = SOSChildrenLayer()
SOS_CHILDREN_INTEGRATION_TESTING = IntegrationTesting(
        bases=(SOS_CHILDREN_FIXTURE,), 
        name="SOSChildren:Integration"
    )
在setup.py中,我们有

  install_requires=[
      'setuptools',

      'collective.lineage',

      'plone.app.caching',
      'plone.app.folder',
      'plone.app.iterate',

      'quintagroup.seoptimizer',

      'rdflib',

      'soschildrensvillages.taxonomy',          
      'soschildren.contentexperiments',          

      'Products.AdvancedQuery',
      'Products.ATContentTypes',
      'Products.CMFPlone',
      'Products.CMFPlacefulWorkflow'
      # -*- Extra requirements: -*-
  ],
在configure.zcml中,我们有

  <includeDependencies package="." />


concept_folder.py包含了原型内容类型的定义。

我通过确保从错误源所在模块中plone.app.folder之前的Products.ATContentTypes导入了一些内容来修复此问题

以前

从plone.app.folder.folder导入文件夹
从plone.app.folder.folder导入到FolderSchema
从Products.ATContentTypes.content.Schema导入finalizeATCTSchema
之后

从Products.ATContentTypes.content.schemata导入finalizeATCTSchema
从plone.app.folder.folder导入文件夹
从plone.app.folder.folder导入到FolderSchema
  <includeDependencies package="." />