Python 迁移到plone.app.testing后测试模块导入失败-显然是循环导入
我在将我们的Plone站点迁移到使用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
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="." />