import os
from turbocheetah 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'
|