def testOnlyTemplate_success(self): template_loader = jinja2.DictLoader({ 'some/path': self.join_lines( '<title>{{ title }}</title>', '<ul>', '{% for user in users -%}', '<li><a href="{{ user.url }}">{{ user.username }}</a></li>', '{% endfor -%}', '</ul>') }) jinja_env = jinja2.Environment(loader=template_loader) class User(object): def __init__(self, url, username): self.url = url self.username = username # Build Templar config. config_builder = ConfigBuilder() config_builder.add_variable('title', 'Test') config_builder.add_variable('users', [User('url1', 'user1'), User('url2', 'user2')]) config = config_builder.build() result = publish(config, template='some/path', jinja_env=jinja_env, no_write=True) self.assertEqual( self.join_lines( '<title>Test</title>', '<ul>', '<li><a href="url1">user1</a></li>', '<li><a href="url2">user2</a></li>', '</ul>'), result)
def testOnlyTemplate_success(self): template_loader = jinja2.DictLoader({ 'some/path': self.join_lines( '<title>{{ title }}</title>', '<ul>', '{% for user in users -%}', '<li><a href="{{ user.url }}">{{ user.username }}</a></li>', '{% endfor -%}', '</ul>') }) jinja_env = jinja2.Environment(loader=template_loader) class User(object): def __init__(self, url, username): self.url = url self.username = username # Build Templar config. config_builder = ConfigBuilder() config_builder.add_variable('title', 'Test') config_builder.add_variable( 'users', [User('url1', 'user1'), User('url2', 'user2')]) config = config_builder.build() result = publish(config, template='some/path', jinja_env=jinja_env, no_write=True) self.assertEqual( self.join_lines('<title>Test</title>', '<ul>', '<li><a href="url1">user1</a></li>', '<li><a href="url2">user2</a></li>', '</ul>'), result)
def testConfigIsImmutable(self): with mock.patch('os.path.isdir', lambda s: True): builder = ConfigBuilder().add_template_dirs('template/path1', 'template/path2') builder.add_variable('var1', 'val1') config = builder.build() # Verify config was constructed correctly. self.assertSequenceEqual(['template/path1', 'template/path2'], config.template_dirs) self.assertDictEqual({'var1': 'val1'}, config.variables) new_builder = config.to_builder() new_builder.clear_template_dirs() new_builder.add_variable('var2', 'val2') # Verify previously built config was not affected by changes to new_builder. self.assertSequenceEqual(['template/path1', 'template/path2'], config.template_dirs) self.assertDictEqual({'var1': 'val1'}, config.variables)