import unittest
|
|
from pyramid.compat import bytes_
|
|
|
class TestTemplate(unittest.TestCase):
|
def _makeOne(self, name='whatever'):
|
from pyramid.scaffolds.template import Template
|
|
return Template(name)
|
|
def test_render_template_success(self):
|
inst = self._makeOne()
|
result = inst.render_template('{{a}} {{b}}', {'a': '1', 'b': '2'})
|
self.assertEqual(result, bytes_('1 2'))
|
|
def test_render_template_expr_failure(self):
|
inst = self._makeOne()
|
self.assertRaises(
|
AttributeError,
|
inst.render_template,
|
'{{a.foo}}',
|
{'a': '1', 'b': '2'},
|
)
|
|
def test_render_template_expr_success(self):
|
inst = self._makeOne()
|
result = inst.render_template('{{a.lower()}}', {'a': 'A'})
|
self.assertEqual(result, b'a')
|
|
def test_render_template_expr_success_via_pipe(self):
|
inst = self._makeOne()
|
result = inst.render_template('{{b|c|a.lower()}}', {'a': 'A'})
|
self.assertEqual(result, b'a')
|
|
def test_render_template_expr_success_via_pipe2(self):
|
inst = self._makeOne()
|
result = inst.render_template('{{b|a.lower()|c}}', {'a': 'A'})
|
self.assertEqual(result, b'a')
|
|
def test_render_template_expr_value_is_None(self):
|
inst = self._makeOne()
|
result = inst.render_template('{{a}}', {'a': None})
|
self.assertEqual(result, b'')
|
|
def test_render_template_with_escaped_double_braces(self):
|
inst = self._makeOne()
|
result = inst.render_template(
|
'{{a}} {{b}} \\{\\{a\\}\\} \\{\\{c\\}\\}', {'a': '1', 'b': '2'}
|
)
|
self.assertEqual(result, bytes_('1 2 {{a}} {{c}}'))
|
|
def test_render_template_with_breaking_escaped_braces(self):
|
inst = self._makeOne()
|
result = inst.render_template(
|
'{{a}} {{b}} \\{\\{a\\} \\{b\\}\\}', {'a': '1', 'b': '2'}
|
)
|
self.assertEqual(result, bytes_('1 2 \\{\\{a\\} \\{b\\}\\}'))
|
|
def test_render_template_with_escaped_single_braces(self):
|
inst = self._makeOne()
|
result = inst.render_template(
|
'{{a}} {{b}} \\{a\\} \\{b', {'a': '1', 'b': '2'}
|
)
|
self.assertEqual(result, bytes_('1 2 \\{a\\} \\{b'))
|
|
def test_module_dir(self):
|
import sys
|
import pkg_resources
|
|
package = sys.modules['pyramid.scaffolds.template']
|
path = pkg_resources.resource_filename(package.__name__, '')
|
inst = self._makeOne()
|
result = inst.module_dir()
|
self.assertEqual(result, path)
|
|
def test_template_dir__template_dir_is_None(self):
|
inst = self._makeOne()
|
self.assertRaises(AssertionError, inst.template_dir)
|
|
def test_template_dir__template_dir_is_tuple(self):
|
inst = self._makeOne()
|
inst._template_dir = ('a', 'b')
|
self.assertEqual(inst.template_dir(), ('a', 'b'))
|
|
def test_template_dir__template_dir_is_not_None(self):
|
import os
|
import sys
|
import pkg_resources
|
|
package = sys.modules['pyramid.scaffolds.template']
|
path = pkg_resources.resource_filename(package.__name__, '')
|
inst = self._makeOne()
|
inst._template_dir = 'foo'
|
result = inst.template_dir()
|
self.assertEqual(result, os.path.join(path, 'foo'))
|
|
def test_write_files_path_exists(self):
|
import os
|
import sys
|
import pkg_resources
|
|
package = sys.modules['pyramid.scaffolds.template']
|
path = pkg_resources.resource_filename(package.__name__, '')
|
inst = self._makeOne()
|
inst._template_dir = 'foo'
|
inst.exists = lambda *arg: True
|
copydir = DummyCopydir()
|
inst.copydir = copydir
|
command = DummyCommand()
|
inst.write_files(command, 'output dir', {'a': 1})
|
self.assertEqual(copydir.template_dir, os.path.join(path, 'foo'))
|
self.assertEqual(copydir.output_dir, 'output dir')
|
self.assertEqual(copydir.vars, {'a': 1})
|
self.assertEqual(
|
copydir.kw,
|
{
|
'template_renderer': inst.render_template,
|
'indent': 1,
|
'verbosity': 1,
|
'simulate': False,
|
'overwrite': False,
|
'interactive': False,
|
},
|
)
|
|
def test_write_files_path_missing(self):
|
L = []
|
inst = self._makeOne()
|
inst._template_dir = 'foo'
|
inst.exists = lambda *arg: False
|
inst.out = lambda *arg: None
|
inst.makedirs = lambda dir: L.append(dir)
|
copydir = DummyCopydir()
|
inst.copydir = copydir
|
command = DummyCommand()
|
inst.write_files(command, 'output dir', {'a': 1})
|
self.assertEqual(L, ['output dir'])
|
|
def test_run(self):
|
L = []
|
inst = self._makeOne()
|
inst._template_dir = 'foo'
|
inst.exists = lambda *arg: False
|
inst.out = lambda *arg: None
|
inst.makedirs = lambda dir: L.append(dir)
|
copydir = DummyCopydir()
|
inst.copydir = copydir
|
command = DummyCommand()
|
inst.run(command, 'output dir', {'a': 1})
|
self.assertEqual(L, ['output dir'])
|
|
def test_check_vars(self):
|
inst = self._makeOne()
|
self.assertRaises(RuntimeError, inst.check_vars, 'one', 'two')
|
|
|
class DummyCopydir(object):
|
def copy_dir(self, template_dir, output_dir, vars, **kw):
|
self.template_dir = template_dir
|
self.output_dir = output_dir
|
self.vars = vars
|
self.kw = kw
|
|
|
class DummyArgs(object):
|
simulate = False
|
overwrite = False
|
interactive = False
|
|
|
class DummyCommand(object):
|
args = DummyArgs()
|
verbosity = 1
|