Skip to content

Commit

Permalink
make anyconfig.template.* and test code worked w/o Jinja2
Browse files Browse the repository at this point in the history
  • Loading branch information
ssato committed Mar 12, 2015
1 parent 19f11a1 commit d8fa661
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 16 deletions.
16 changes: 13 additions & 3 deletions anyconfig/template.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
# Author: Satoru SATOH <ssato redhat.com>
# License: MIT
#
from jinja2.exceptions import TemplateNotFound
from anyconfig.compat import raw_input, copen
from anyconfig.globals import LOGGER

Expand All @@ -14,6 +13,8 @@
TEMPLATE_SUPPORT = False
try:
import jinja2
from jinja2.exceptions import TemplateNotFound

TEMPLATE_SUPPORT = True

def tmpl_env(paths):
Expand All @@ -23,6 +24,9 @@ def tmpl_env(paths):
LOGGER.warn("Jinja2 is not available on your system, so "
"template support will be disabled.")

class TemplateNotFound(RuntimeError):
pass

def tmpl_env(paths):
return None

Expand Down Expand Up @@ -50,9 +54,15 @@ def render_s(tmpl_s, ctx={}, paths=[os.curdir]):
:param paths: Template search paths
>>> s = render_s('a = {{ a }}, b = "{{ b }}"', {'a': 1, 'b': 'bbb'})
>>> assert s == 'a = 1, b = "bbb"'
>>> if TEMPLATE_SUPPORT:
... assert s == 'a = 1, b = "bbb"'
"""
return tmpl_env(paths).from_string(tmpl_s).render(**ctx)
env = tmpl_env(paths)

if env is None:
return tmpl_s
else:
return tmpl_env(paths).from_string(tmpl_s).render(**ctx)


def render_impl(template_file, ctx={}, paths=[]):
Expand Down
29 changes: 16 additions & 13 deletions anyconfig/tests/template.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,22 +35,25 @@ def tearDown(self):
C.cleanup_workdir(self.workdir)

def test_10_render_impl__wo_paths(self):
for fn, _s, c in self.templates:
f = os.path.join(self.workdir, fn)
c_r = TT.render_impl(f)
self.assertEquals(c_r, c)
if TT.TEMPLATE_SUPPORT:
for fn, _s, c in self.templates:
f = os.path.join(self.workdir, fn)
c_r = TT.render_impl(f)
self.assertEquals(c_r, c)

def test_12_render_impl__w_paths(self):
for fn, _s, c in self.templates:
f = os.path.join(self.workdir, fn)
c_r = TT.render_impl(os.path.basename(f),
paths=[os.path.dirname(f)])
self.assertEquals(c_r, c)
if TT.TEMPLATE_SUPPORT:
for fn, _s, c in self.templates:
f = os.path.join(self.workdir, fn)
c_r = TT.render_impl(os.path.basename(f),
paths=[os.path.dirname(f)])
self.assertEquals(c_r, c)

def test_20_render__wo_paths(self):
for fn, _s, c in self.templates:
f = os.path.join(self.workdir, fn)
c_r = TT.render(f)
self.assertEquals(c_r, c)
if TT.TEMPLATE_SUPPORT:
for fn, _s, c in self.templates:
f = os.path.join(self.workdir, fn)
c_r = TT.render(f)
self.assertEquals(c_r, c)

# vim:sw=4:ts=4:et:

0 comments on commit d8fa661

Please sign in to comment.