summaryrefslogtreecommitdiff
path: root/tests/template_loader/tests.py
blob: a4a4542f32f520934728d6d4376bf1bd3fc0d5fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
from django.template import TemplateDoesNotExist
from django.template.loader import (
    get_template, render_to_string, select_template,
)
from django.test import SimpleTestCase, override_settings
from django.test.client import RequestFactory


@override_settings(TEMPLATES=[{
    'BACKEND': 'django.template.backends.dummy.TemplateStrings',
    'APP_DIRS': True,
}, {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.request',
        ],
    },
}])
class TemplateLoaderTests(SimpleTestCase):

    def test_get_template_first_engine(self):
        template = get_template("template_loader/hello.html")
        self.assertEqual(template.render(), "Hello! (template strings)\n")

    def test_get_template_second_engine(self):
        template = get_template("template_loader/goodbye.html")
        self.assertEqual(template.render(), "Goodbye! (Django templates)\n")

    def test_get_template_using_engine(self):
        template = get_template("template_loader/hello.html", using="django")
        self.assertEqual(template.render(), "Hello! (Django templates)\n")

    def test_get_template_not_found(self):
        with self.assertRaises(TemplateDoesNotExist):
            get_template("template_loader/unknown.html")

    def test_select_template_first_engine(self):
        template = select_template(["template_loader/unknown.html",
                                    "template_loader/hello.html"])
        self.assertEqual(template.render(), "Hello! (template strings)\n")

    def test_select_template_second_engine(self):
        template = select_template(["template_loader/unknown.html",
                                    "template_loader/goodbye.html"])
        self.assertEqual(template.render(), "Goodbye! (Django templates)\n")

    def test_select_template_using_engine(self):
        template = select_template(["template_loader/unknown.html",
                                    "template_loader/hello.html"], using="django")
        self.assertEqual(template.render(), "Hello! (Django templates)\n")

    def test_select_template_empty(self):
        with self.assertRaises(TemplateDoesNotExist):
            select_template([])

    def test_select_template_not_found(self):
        with self.assertRaises(TemplateDoesNotExist):
            select_template(["template_loader/unknown.html",
                             "template_loader/missing.html"])

    def test_select_template_tries_all_engines_before_names(self):
        template = select_template(["template_loader/goodbye.html",
                                    "template_loader/hello.html"])
        self.assertEqual(template.render(), "Goodbye! (Django templates)\n")

    def test_render_to_string_first_engine(self):
        content = render_to_string("template_loader/hello.html")
        self.assertEqual(content, "Hello! (template strings)\n")

    def test_render_to_string_second_engine(self):
        content = render_to_string("template_loader/goodbye.html")
        self.assertEqual(content, "Goodbye! (Django templates)\n")

    def test_render_to_string_with_request(self):
        request = RequestFactory().get('/foobar/')
        content = render_to_string("template_loader/request.html", request=request)
        self.assertEqual(content, "/foobar/\n")

    def test_render_to_string_using_engine(self):
        content = render_to_string("template_loader/hello.html", using="django")
        self.assertEqual(content, "Hello! (Django templates)\n")

    def test_render_to_string_not_found(self):
        with self.assertRaises(TemplateDoesNotExist):
            render_to_string("template_loader/unknown.html")

    def test_render_to_string_with_list_first_engine(self):
        content = render_to_string(["template_loader/unknown.html",
                                    "template_loader/hello.html"])
        self.assertEqual(content, "Hello! (template strings)\n")

    def test_render_to_string_with_list_second_engine(self):
        content = render_to_string(["template_loader/unknown.html",
                                    "template_loader/goodbye.html"])
        self.assertEqual(content, "Goodbye! (Django templates)\n")

    def test_render_to_string_with_list_using_engine(self):
        content = render_to_string(["template_loader/unknown.html",
                                    "template_loader/hello.html"], using="django")
        self.assertEqual(content, "Hello! (Django templates)\n")

    def test_render_to_string_with_list_empty(self):
        with self.assertRaises(TemplateDoesNotExist):
            render_to_string([])

    def test_render_to_string_with_list_not_found(self):
        with self.assertRaises(TemplateDoesNotExist):
            render_to_string(["template_loader/unknown.html",
                              "template_loader/missing.html"])

    def test_render_to_string_with_list_tries_all_engines_before_names(self):
        content = render_to_string(["template_loader/goodbye.html",
                                    "template_loader/hello.html"])
        self.assertEqual(content, "Goodbye! (Django templates)\n")