43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from django.shortcuts import render
|
|
import jinja2
|
|
|
|
from nose.tools import eq_
|
|
try:
|
|
from unittest.mock import Mock, patch, sentinel
|
|
except ImportError:
|
|
from mock import Mock, patch, sentinel
|
|
|
|
import jingo
|
|
|
|
|
|
@patch('jingo.env')
|
|
def test_render(mock_env):
|
|
mock_template = Mock()
|
|
mock_env.get_template.return_value = mock_template
|
|
|
|
response = render(Mock(), sentinel.template, status=32)
|
|
mock_env.get_template.assert_called_with(sentinel.template)
|
|
assert mock_template.render.called
|
|
|
|
eq_(response.status_code, 32)
|
|
|
|
|
|
@patch('jingo.env')
|
|
def test_render_to_string(mock_env):
|
|
template = jinja2.environment.Template('The answer is {{ answer }}')
|
|
rendered = jingo.render_to_string(Mock(), template, {'answer': 42})
|
|
|
|
eq_(rendered, 'The answer is 42')
|
|
|
|
|
|
@patch('jingo.env.get_template')
|
|
def test_inclusion_tag(get_template):
|
|
@jingo.register.inclusion_tag('xx.html')
|
|
def tag(x):
|
|
return {'z': x}
|
|
get_template.return_value = jinja2.environment.Template('<{{ z }}>')
|
|
t = jingo.env.from_string('{{ tag(1) }}')
|
|
eq_('<1>', t.render())
|