迁移到后Testmodule导入失败plone.app.测试显然是循环进口

2024-05-16 05:27:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我面临着一个问题,将我们的Plone网站迁移到使用plone.app.测试. 我得到消息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

当它试图设置测试层并运行测试时,会出现更多导入错误。只有单元测试(普通测试用例)运行时没有错误。在

这些错误是在我从Products.PloneTestCase迁移最后一个测试并在我们的测试.py模块解决了这个问题。在

^{pr2}$

我不知道有人在这里需要帮助到什么样的细节,但我可以尝试的任何建议将不胜感激。在

我们的测试.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"
    )

在设置.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: -*-
  ],

在配置.zcml我们有

  <includeDependencies package="." />

概念_文件夹.py包括原型内容类型的定义。在


Tags: inpyimportselfappcmsplonebuildout
1条回答
网友
1楼 · 发布于 2024-05-16 05:27:16

我通过确保从产品.ATContentTypes以前plone.app.文件夹在错误发生的模块中。在

以前

from plone.app.folder.folder import ATFolder
from plone.app.folder.folder import ATFolderSchema
from Products.ATContentTypes.content.schemata import finalizeATCTSchema

之后

^{pr2}$

相关问题 更多 >