Django只是为了测试而创建一个模板

时间:2014-01-31 13:13:08

标签: python django testing django-cms

我正在为一个Django应用程序(也使用Django-CMS)编写一些测试。应用程序本身不使用任何模板,但测试中的场景涉及创建Django-CMS页面,因此创建模板。定义和使用仅用于测试的模板的最简单,最快捷的方法是什么?

1 个答案:

答案 0 :(得分:0)

看起来定义自定义模板加载器对我来说很有用:

from django.template.loader import BaseLoader
from django.template.base import TemplateDoesNotExist


class TestTemplateLoader(BaseLoader):

    def __init__(self, *args, **kwargs):
        super(TestTemplateLoader, self).__init__(*args, **kwargs)
        self.is_usable = True

    def load_template_source(self, template_name, template_dirs=None):
        if template_name == 'test.html':
            return 'test.html', 'test.html'
        raise TemplateDoesNotExist

然后将其包含在测试设置文件中:

CMS_TEMPLATES = (
    ('test.html', 'test.html'),
)

TEMPLATE_LOADERS = (
    'cmsplugin_filer_image.tests.utils.TestTemplateLoader',
)