0

我有一个功能可以在我的测试中构建一些 CMS 骨架:

def create_base_cms_structure():
    from cms.api import create_page
    from cms.utils.conf import get_cms_setting
    superuser = User.objects.create_superuser('cmsadmin', 'admin@admin.com', 'cmsadmin')
    create_page('account-page', get_cms_setting('TEMPLATES')[0][0], 'pl',
                created_by=superuser, published=True, apphook="AccountApp")
    create_page('job-page', get_cms_setting('TEMPLATES')[0][0], 'pl',
                created_by=superuser, published=True, apphook="JobApp")
    create_page('article-page', get_cms_setting('TEMPLATES')[0][0], 'pl',
                created_by=superuser, published=True, apphook="ArticleApp")

可以吗?当我尝试使用 Client() 运行我的测试时,我收到错误,即我的反向 1 不存在(来自帐户应用程序的那个)。该 URL 正在主模板中呈现。

我错过了什么吗?

Django 1.4.5

Django-CMS 2.4b

4

1 回答 1

0

来自 Django-cms 文档:

您的应用需要测试,但在您的实时站点中,它们不在 urls.py 中,因为它们附加到 CMS 页面。因此,如果您希望能够在测试中使用 reverse(),或者测试使用 url 模板标签的模板,您需要将您的应用程序连接到 urls.py 的特殊测试版本并告诉您的测试使用它。

接着

@override_settings(ROOT_URLCONF='myapp.tests.urls')

在你的方法之前。

http://django-cms.readthedocs.org/en/latest/extending_cms/testing.html

你试过这个吗?

于 2014-11-07T19:30:59.117 回答