summaryrefslogtreecommitdiff
path: root/Cheetah/Tools/turbocheetah/tests/test_template.py
blob: ab18e3e1d01fb50745caa696c07277404547227d (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
import os
from ..cheetahsupport import TurboCheetah

here = os.path.dirname(__file__)

values = {
    'v': 'VV',
    'one': 1,
    }

def test_normal():
    plugin = TurboCheetah()
    # Make sure a simple test works:
    s = plugin.render(values, template='turbocheetah.tests.simple1')
    assert s.strip() == 'This is a test: VV'
    # Make sure one template can inherit from another:
    s = plugin.render(values, template='turbocheetah.tests.import_inherit')
    assert s.strip() == 'Inherited: import'

def test_path():
    plugin = TurboCheetah()
    plugin.search_path = [here]
    # Make sure we pick up filenames (basic test):
    s = plugin.render(values, template_file='simple1')
    assert s.strip() == 'This is a test: VV'
    # Make sure we pick up subdirectories:
    s = plugin.render(values, template_file='sub/master')
    assert s.strip() == 'sub1: 1'

def test_search():
    plugin = TurboCheetah()
    plugin.search_path = [os.path.join(here, 'sub'),
                          os.path.join(here, 'sub2'),
                          here]
    # Pick up from third entry:
    s = plugin.render(values, template_file='simple1')
    assert s.strip() == 'This is a test: VV'
    # Pick up from sub/master, non-ambiguous:
    s = plugin.render(values, template_file='master')
    assert s.strip() == 'sub1: 1'
    # Pick up from sub/page, inherit from sub/template:
    s = plugin.render(values, template_file='page')
    assert s.strip() == 'SUB: sub content'
    # Pick up from sub2/page_over, inherit from sub/template:
    s = plugin.render(values, template_file='page_over')
    assert s.strip() == 'SUB: override content'
    # Pick up from sub/page_template_over, inherit from
    # sub2/template_over:
    s = plugin.render(values, template_file='page_template_over')
    assert s.strip() == 'OVER: sub content'
    # Change page, make sure that undoes overrides:
    plugin.search_path = [os.path.join(here, 'sub'),
                          here]
    s = plugin.render(values, template_file='page_over')
    assert s.strip() == 'SUB: sub content'

def test_string():
    # Make sure simple string evaluation works:
    plugin = TurboCheetah()
    s = plugin.render(values, template_string="""Hey $v""")
    assert s == "Hey VV"
    # Make sure a string can inherit from a file:
    plugin.search_path = [here]
    s = plugin.render(values, template_string="#extends inherit_from\ns value")
    assert s.strip() == 'inherit: s value'