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
|
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())
|