converted unit tests, started rewriting filters
authorChristoph Hack <christoph@tux21b.org>
Sun, 13 Apr 2008 21:35:48 +0000 (23:35 +0200)
committerChristoph Hack <christoph@tux21b.org>
Sun, 13 Apr 2008 21:35:48 +0000 (23:35 +0200)
--HG--
branch : trunk

26 files changed:
jinja2/defaults.py
jinja2/environment.py
jinja2/filters.py
jinja2/nodes.py
jinja2/utils.py
tests/conftest.py
tests/runtime/bigbench.py
tests/runtime/bigtable.py
tests/runtime/columntest.py
tests/runtime/exception.py
tests/runtime/inheritance.py
tests/runtime/layout.py
tests/runtime/modglobals.py
tests/runtime/strange.py
tests/runtime/super.py
tests/test_filters.py
tests/test_i18n.py
tests/test_inheritance.py
tests/test_lexer.py
tests/test_loaders.py
tests/test_macros.py
tests/test_parser.py
tests/test_security.py
tests/test_syntax.py
tests/test_undefined.py
tests/test_various.py

index 84c1b0842077d6f74ffa9a2e305dbbf9a2c5f601..4ad0e3a23f9a4264210467d40bd348d283cabdbb 100644 (file)
@@ -10,7 +10,9 @@
 """
 from jinja2.filters import FILTERS as DEFAULT_FILTERS
 from jinja.tests import TESTS as DEFAULT_TESTS
-DEFAULT_NAMESPACE = {}
+DEFAULT_NAMESPACE = {
+    'range': xrange
+}
 
 
 __all__ = ['DEFAULT_FILTERS', 'DEFAULT_TESTS', 'DEFAULT_NAMESPACE']
index 8458a2381dbebe13cd096386a46cf4c8e7d90e06..ae3e2ecb8577d9fab9aade933f90a4b56d0a2d9c 100644 (file)
@@ -136,7 +136,9 @@ class Template(object):
     """Represents a template."""
 
     def __init__(self, environment, code):
-        namespace = {'environment': environment}
+        namespace = {
+            'environment': environment
+        }
         exec code in namespace
         self.environment = environment
         self.name = namespace['filename']
index 1c3ffcba27785f029628e6e407bdf62752a113d2..db0ea228674907f64ecda83c088f26cbcc16b864 100644 (file)
@@ -15,7 +15,9 @@ try:
 except ImportError:
     itemgetter = lambda a: lambda b: b[a]
 from urllib import urlencode, quote
-from jinja2.utils import escape
+from jinja2.utils import escape, pformat
+from jinja2.nodes import Undefined
+
 
 
 _striptags_re = re.compile(r'(<!--.*?-->|<[^>]*>)')
@@ -138,7 +140,7 @@ def do_title(s):
     return unicode(s).title()
 
 
-def do_dictsort(case_sensitive=False, by='key'):
+def do_dictsort(value, case_sensitive=False, by='key'):
     """
     Sort a dict and yield (key, value) pairs. Because python dicts are
     unsorted you may want to use this function to order them by either
@@ -163,19 +165,16 @@ def do_dictsort(case_sensitive=False, by='key'):
     else:
         raise FilterArgumentError('You can only sort by either '
                                   '"key" or "value"')
-    def sort_func(value, env):
+    def sort_func(value):
         if isinstance(value, basestring):
-            value = env.to_unicode(value)
+            value = unicode(value)
             if not case_sensitive:
                 value = value.lower()
         return value
 
-    def wrapped(env, context, value):
-        items = value.items()
-        items.sort(lambda a, b: cmp(sort_func(a[pos], env),
-                                    sort_func(b[pos], env)))
-        return items
-    return wrapped
+    items = value.items()
+    items.sort(lambda a, b: cmp(sort_func(a[pos]), sort_func(b[pos])))
+    return items
 
 
 def do_default(value, default_value=u'', boolean=False):
@@ -196,8 +195,7 @@ def do_default(value, default_value=u'', boolean=False):
 
         {{ ''|default('the string was empty', true) }}
     """
-    # XXX: undefined_sigleton
-    if (boolean and not value) or value in (env.undefined_singleton, None):
+    if (boolean and not value) or isinstance(value, Undefined):
         return default_value
     return value
 
@@ -219,7 +217,7 @@ def do_join(value, d=u''):
     return unicode(d).join([unicode(x) for x in value])
 
 
-def do_count():
+def do_count(value):
     """
     Return the length of the value. In case if getting an integer or float
     it will convert it into a string an return the length of the new
@@ -233,7 +231,7 @@ def do_count():
         return 0
 
 
-def do_reverse(l):
+def do_reverse(value):
     """
     Return a reversed list of the sequence filtered. You can use this
     for example for reverse iteration:
@@ -279,7 +277,7 @@ def do_last(seq):
         return env.undefined_singleton
 
 
-def do_random():
+def do_random(seq):
     """
     Return a random item from the sequence.
     """
@@ -331,26 +329,24 @@ def do_jsonencode(value):
     return simplejson.dumps(value)
 
 
-def do_filesizeformat():
+def do_filesizeformat(value):
     """
     Format the value like a 'human-readable' file size (i.e. 13 KB, 4.1 MB, 102
     bytes, etc).
     """
-    def wrapped(env, context, value):
-        # fail silently
-        try:
-            bytes = float(value)
-        except TypeError:
-            bytes = 0
-
-        if bytes < 1024:
-            return "%d Byte%s" % (bytes, bytes != 1 and 's' or '')
-        elif bytes < 1024 * 1024:
-            return "%.1f KB" % (bytes / 1024)
-        elif bytes < 1024 * 1024 * 1024:
-            return "%.1f MB" % (bytes / (1024 * 1024))
-        return "%.1f GB" % (bytes / (1024 * 1024 * 1024))
-    return wrapped
+    # fail silently
+    try:
+        bytes = float(value)
+    except TypeError:
+        bytes = 0
+
+    if bytes < 1024:
+        return "%d Byte%s" % (bytes, bytes != 1 and 's' or '')
+    elif bytes < 1024 * 1024:
+        return "%.1f KB" % (bytes / 1024)
+    elif bytes < 1024 * 1024 * 1024:
+        return "%.1f MB" % (bytes / (1024 * 1024))
+    return "%.1f GB" % (bytes / (1024 * 1024 * 1024))
 
 
 def do_pprint(value, verbose=False):
@@ -495,45 +491,42 @@ def do_rst(s):
     parts = publish_parts(source=s, writer_name='html4css1')
     return parts['fragment']
 
-def do_int(default=0):
+
+def do_int(value, default=0):
     """
     Convert the value into an integer. If the
     conversion doesn't work it will return ``0``. You can
     override this default using the first parameter.
     """
-    def wrapped(env, context, value):
+    try:
+        return int(value)
+    except (TypeError, ValueError):
         try:
-            return int(value)
+            return int(float(value))
         except (TypeError, ValueError):
-            try:
-                return int(float(value))
-            except (TypeError, ValueError):
-                return default
-    return wrapped
+            return default
 
 
-def do_float(default=0.0):
+def do_float(value, default=0.0):
     """
     Convert the value into a floating point number. If the
     conversion doesn't work it will return ``0.0``. You can
     override this default using the first parameter.
     """
-    def wrapped(env, context, value):
-        try:
-            return float(value)
-        except (TypeError, ValueError):
-            return default
-    return wrapped
+    try:
+        return float(value)
+    except (TypeError, ValueError):
+        return default
 
 
-def do_string():
+def do_string(value):
     """
     Convert the value into an string.
     """
-    return lambda e, c, v: e.to_unicode(v)
+    return unicode(value)
 
 
-def do_format(*args):
+def do_format(value, *args):
     """
     Apply python string formatting on an object:
 
@@ -545,9 +538,7 @@ def do_format(*args):
     Note that you cannot use the mapping syntax (``%(name)s``)
     like in python. Use `|dformat` for that.
     """
-    def wrapped(env, context, value):
-        return env.to_unicode(value) % args
-    return wrapped
+    return unicode(value) % args
 
 
 def do_dformat(d):
@@ -578,39 +569,6 @@ def do_trim(value):
     return value.strip()
 
 
-def do_capture(name='captured', clean=False):
-    """
-    Store the value in a variable called ``captured`` or a variable
-    with the name provided. Useful for filter blocks:
-
-    .. sourcecode:: jinja
-
-        {% filter capture('foo') %}
-            ...
-        {% endfilter %}
-        {{ foo }}
-
-    This will output "..." two times. One time from the filter block
-    and one time from the variable. If you don't want the filter to
-    output something you can use it in `clean` mode:
-
-    .. sourcecode:: jinja
-
-        {% filter capture('foo', True) %}
-            ...
-        {% endfilter %}
-        {{ foo }}
-    """
-    if not isinstance(name, basestring):
-        raise FilterArgumentError('You can only capture into variables')
-    def wrapped(env, context, value):
-        context[name] = value
-        if clean:
-            return TemplateData()
-        return value
-    return wrapped
-
-
 def do_striptags(value):
     """
     Strip SGML/XML tags and replace adjacent whitespace by one space.
@@ -620,7 +578,7 @@ def do_striptags(value):
     return ' '.join(_striptags_re.sub('', value).split())
 
 
-def do_slice(slices, fill_with=None):
+def do_slice(value, slices, fill_with=None):
     """
     Slice an iterator and return a list of lists containing
     those items. Useful if you want to create a div containing
@@ -643,27 +601,25 @@ def do_slice(slices, fill_with=None):
 
     *new in Jinja 1.1*
     """
-    def wrapped(env, context, value):
-        result = []
-        seq = list(value)
-        length = len(seq)
-        items_per_slice = length // slices
-        slices_with_extra = length % slices
-        offset = 0
-        for slice_number in xrange(slices):
-            start = offset + slice_number * items_per_slice
-            if slice_number < slices_with_extra:
-                offset += 1
-            end = offset + (slice_number + 1) * items_per_slice
-            tmp = seq[start:end]
-            if fill_with is not None and slice_number >= slices_with_extra:
-                tmp.append(fill_with)
-            result.append(tmp)
-        return result
-    return wrapped
-
-
-def do_batch(linecount, fill_with=None):
+    result = []
+    seq = list(value)
+    length = len(seq)
+    items_per_slice = length // slices
+    slices_with_extra = length % slices
+    offset = 0
+    for slice_number in xrange(slices):
+        start = offset + slice_number * items_per_slice
+        if slice_number < slices_with_extra:
+            offset += 1
+        end = offset + (slice_number + 1) * items_per_slice
+        tmp = seq[start:end]
+        if fill_with is not None and slice_number >= slices_with_extra:
+            tmp.append(fill_with)
+        result.append(tmp)
+    return result
+
+
+def do_batch(value, linecount, fill_with=None):
     """
     A filter that batches items. It works pretty much like `slice`
     just the other way round. It returns a list of lists with the
@@ -684,20 +640,18 @@ def do_batch(linecount, fill_with=None):
 
     *new in Jinja 1.1*
     """
-    def wrapped(env, context, value):
-        result = []
-        tmp = []
-        for item in value:
-            if len(tmp) == linecount:
-                result.append(tmp)
-                tmp = []
-            tmp.append(item)
-        if tmp:
-            if fill_with is not None and len(tmp) < linecount:
-                tmp += [fill_with] * (linecount - len(tmp))
+    result = []
+    tmp = []
+    for item in value:
+        if len(tmp) == linecount:
             result.append(tmp)
-        return result
-    return wrapped
+            tmp = []
+        tmp.append(item)
+    if tmp:
+        if fill_with is not None and len(tmp) < linecount:
+            tmp += [fill_with] * (linecount - len(tmp))
+        result.append(tmp)
+    return result
 
 
 def do_sum():
@@ -888,7 +842,6 @@ FILTERS = {
     'urlize':               do_urlize,
     'format':               do_format,
     'dformat':              do_dformat,
-    'capture':              do_capture,
     'trim':                 do_trim,
     'striptags':            do_striptags,
     'slice':                do_slice,
index ecc3f1e9f51ea1fe5afa1763b3930e12b55cb503..02eb3c0e618ae6dabb04e0bbd4086499f9f184a2 100644 (file)
@@ -405,7 +405,7 @@ class Filter(Expr):
             raise Impossible()
         filter = self.environment.filters.get(self.name)
         if filter is None or getattr(filter, 'contextfilter', False):
-            raise nodes.Impossible()
+            raise Impossible()
         if obj is None:
             obj = self.node.as_const()
         args = [x.as_const() for x in self.args]
@@ -423,7 +423,7 @@ class Filter(Expr):
         try:
             return filter(obj, *args, **kwargs)
         except:
-            raise nodes.Impossible()
+            raise Impossible()
 
 
 class Test(Expr):
@@ -452,7 +452,7 @@ class Call(Expr):
         try:
             return obj(*args, **kwargs)
         except:
-            raise nodes.Impossible()
+            raise Impossible()
 
 
 class Subscript(Expr):
index 4ee245d6b9e164237d246dbacd9c105a2269202f..90f30e907f90fad1cc65143d8302acbb73b024d5 100644 (file)
@@ -19,3 +19,16 @@ def escape(obj, attribute=False):
         .replace('>', '&gt;') \
         .replace('<', '&lt;') \
         .replace('"', '&quot;')
+
+
+def pformat(obj, verbose=False):
+    """
+    Prettyprint an object.  Either use the `pretty` library or the
+    builtin `pprint`.
+    """
+    try:
+        from pretty import pretty
+        return pretty(obj, verbose=verbose)
+    except ImportError:
+        from pprint import pformat
+        return pformat(obj)
index 0c5a5fff9399d37ac4477f7b75ac7cf678bd1579..0f1439b62009adf4c1e5360779c13e9bef67d9c4 100644 (file)
@@ -14,8 +14,8 @@ import sys
 sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
 
 import py
-from jinja import Environment
-from jinja.parser import Parser
+from jinja2 import Environment
+from jinja2.parser import Parser
 
 try:
     # This code adds support for coverage.py (see
@@ -25,15 +25,15 @@ try:
 
     import coverage, atexit
 
-    IGNORED_MODULES = ['jinja._speedups', 'jinja.defaults',
-                       'jinja.translators']
+    IGNORED_MODULES = ['jinja2._speedups', 'jinja2.defaults',
+                       'jinja2.translators']
 
     def report_coverage():
         coverage.stop()
         module_list = [
             mod for name, mod in sys.modules.copy().iteritems() if
             getattr(mod, '__file__', None) and
-            name.startswith('jinja.') and
+            name.startswith('jinja2.') and
             name not in IGNORED_MODULES
         ]
         module_list.sort()
@@ -70,7 +70,7 @@ class GlobalLoader(object):
 
 
 loader = GlobalLoader(globals())
-simple_env = Environment(trim_blocks=True, friendly_traceback=False, loader=loader)
+simple_env = Environment(trim_blocks=True, loader=loader)
 
 
 class MemcacheClient(object):
index 2ac975adc941caeea1b1ee2ca47741ef4aab880f..58014bf40c7c0e6614964975c253e8a6d8527e88 100644 (file)
@@ -1,6 +1,6 @@
 import jdebug
 from time import time
-from jinja import Environment
+from jinja2 import Environment
 tmpl = Environment().from_string('''
 <h1>Bigtable</h1>
 <table>
index ce853d93bbd7b2dd0393b48d020dd092eebcacaf..c86a12a46b71e2aeb9d6e4120ed1abe164e3ccd4 100644 (file)
@@ -24,7 +24,7 @@ try:
 except ImportError:
     have_genshi = False
 
-from jinja import Environment
+from jinja2 import Environment
 
 try:
     from django.conf import settings
index ebb00fc436874cf61365f3b682946c8f3a03f001..ebda8ca22fa720adcccad652139f1b300a36f93c 100644 (file)
@@ -1,5 +1,5 @@
 import jdebug
-from jinja import from_string
+from jinja2 import from_string
 
 
 template = from_string(u'''\
index 9dffaebb5d5c7eaf667009573b6a73d75eaa3a8a..4fc2cffb7ac4969da02fa86c078d69441a565274 100644 (file)
@@ -3,8 +3,8 @@ import sys
 sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..'))
 
 import jdebug
-from jinja import Environment, DictLoader
-from jinja.exceptions import TemplateNotFound
+from jinja2 import Environment, DictLoader
+from jinja2.exceptions import TemplateNotFound
 from wsgiref.simple_server import make_server
 
 e = Environment(loader=DictLoader({
index a2275aa6272ce86cd5d6c8fa4c195aaed9112dcb..1e1ff85ced77f94cdb3462e30c94d165850d2e3d 100644 (file)
@@ -1,8 +1,8 @@
-from jinja import Environment, FileSystemLoader
+from jinja2 import Environment, FileSystemLoader
 e = Environment(loader=FileSystemLoader('templates'))
 
-from jinja.parser import Parser
-from jinja.translators.python import PythonTranslator
+from jinja2.parser import Parser
+from jinja2.translators.python import PythonTranslator
 
 tmpl = e.loader.load('c.html')
 print tmpl.render()
index 8b1ebec3a2bebf77fb71be0194a2d2c81b718810..9e1bce5ffe26527e465192843d0dd59ad54a9c58 100644 (file)
@@ -1,8 +1,8 @@
-from jinja import Environment, FileSystemLoader
+from jinja2 import Environment, FileSystemLoader
 e = Environment(loader=FileSystemLoader('templates'))
 
-from jinja.parser import Parser
-from jinja.translators.python import PythonTranslator
+from jinja2.parser import Parser
+from jinja2.translators.python import PythonTranslator
 
 print PythonTranslator(e, e.loader.parse('index.html')).translate()
 
index ea31c98faaf7427c9f2fbd4232b7055d89727b22..b8d784bd187eccef7ac8dfeacf4bc188896ae7a5 100644 (file)
@@ -1,6 +1,6 @@
 # test file for block super support
 import jdebug
-from jinja import Environment, DictLoader
+from jinja2 import Environment, DictLoader
 
 env = Environment(loader=DictLoader({
     'a': '''\
index 56a0852dfe8bf992e521c1d368e707d570f21a09..baaae0d784eb8242f53ccc8adc4207d41f8dd7bf 100644 (file)
@@ -1,5 +1,5 @@
 import jdebug
-from jinja import Environment, DictLoader
+from jinja2 import Environment, DictLoader
 
 base_tmpl = """
 {% block content %}Default{% endblock %}
index 8954afe75a4c95cb84865e8363714cf70160ae72..d777760d8d7bce6101d88cd426da96292e02422b 100644 (file)
@@ -1,6 +1,6 @@
 # test file for block super support
 import jdebug
-from jinja import Environment, DictLoader
+from jinja2 import Environment, DictLoader
 
 env = Environment(loader=DictLoader({
     'a': '{% block intro %}INTRO{% endblock %}|BEFORE|{% block data %}INNER{% endblock %}|AFTER',
index cc161949117fd204fd270374c85e02666553b28b..2378d1011b5449ca82c6ac869037ddab3e9abf5a 100644 (file)
@@ -15,7 +15,6 @@
 """
 
 CAPITALIZE = '''{{ "foo bar"|capitalize }}'''
-CAPTURE = '''{{ "foo"|capture('bar') }}|{{ bar }}'''
 CENTER = '''{{ "foo"|center(9) }}'''
 DEFAULT = '''{{ missing|default("no") }}|{{ false|default('no') }}|\
 {{ false|default('no', true) }}|{{ given|default("no") }}'''
@@ -75,11 +74,6 @@ def test_capitalize(env):
     assert tmpl.render() == 'Foo bar'
 
 
-def test_capture(env):
-    tmpl = env.from_string(CAPTURE)
-    assert tmpl.render() == 'foo|foo'
-
-
 def test_center(env):
     tmpl = env.from_string(CENTER)
     assert tmpl.render() == '   foo   '
@@ -115,7 +109,7 @@ def test_slice(env):
 def test_escape(env):
     tmpl = env.from_string(ESCAPE)
     out = tmpl.render()
-    assert out == '&lt;"&gt;&amp;|&lt;&quot;&gt;&amp;'
+    assert out == '&lt;&quot;&gt;&amp;|&lt;&quot;&gt;&amp;'
 
 
 def test_striptags(env):
@@ -191,7 +185,7 @@ def test_lower(env):
 def test_pprint(env):
     from pprint import pformat
     tmpl = env.from_string(PPRINT)
-    data = range(10000)
+    data = range(1000)
     assert tmpl.render(data=data) == pformat(data)
 
 
index 65f3d2fc9acc37dc939b8937d190997de92ec79e..afae0cdfe19b86a9b795346d068b35627b5ed0e0 100644 (file)
@@ -6,7 +6,7 @@
     :copyright: 2007 by Armin Ronacher.
     :license: BSD, see LICENSE for more details.
 """
-from jinja import Environment, DictLoader
+from jinja2 import Environment, DictLoader
 
 templates = {
     'master.html': '<title>{{ page_title|default(_("missing")) }}</title>'
index 64ec76d97d896db067a04846cf88ba634a4e798f..53ebfac3e5024b7c170dc850617663cb32a75f5d 100644 (file)
@@ -6,8 +6,8 @@
     :copyright: 2007 by Armin Ronacher.
     :license: BSD, see LICENSE for more details.
 """
-from jinja import Environment, DictLoader
-from jinja.exceptions import TemplateSyntaxError
+from jinja2 import Environment, DictLoader
+from jinja2.exceptions import TemplateSyntaxError
 
 LAYOUTTEMPLATE = '''\
 |{% block block1 %}block 1 from layout{% endblock %}
index 1296ea9447a0645e0ee1f8ac4d5e0ba1f1d10022..a6717e959ed5663ea785d90e0074a58a789a9c24 100644 (file)
@@ -24,14 +24,14 @@ def test_raw(env):
 
 
 def test_balancing():
-    from jinja import Environment
+    from jinja2 import Environment
     env = Environment('{%', '%}', '${', '}')
     tmpl = env.from_string(BALANCING)
     assert tmpl.render(seq=range(3)) == "{'FOO': 0}{'FOO': 1}{'FOO': 2}"
 
 
 def test_comments():
-    from jinja import Environment
+    from jinja2 import Environment
     env = Environment('<!--', '-->', '{', '}')
     tmpl = env.from_string(COMMENTS)
     assert tmpl.render(seq=range(3)) == ("<ul>\n  <li>0</li>\n  "
@@ -51,7 +51,7 @@ def test_bytefallback(env):
 
 
 def test_operators(env):
-    from jinja.lexer import operators
+    from jinja2.lexer import operators
     for test, expect in operators.iteritems():
         if test in '([{}])':
             continue
index a1d21ad45223120fd641aa05a9e67a75b21ba60f..05698393b03b8146f237c9acc3a6a92a086a4e9f 100644 (file)
@@ -9,8 +9,8 @@
 
 import time
 import tempfile
-from jinja import Environment, loaders
-from jinja.exceptions import TemplateNotFound
+from jinja2 import Environment, loaders
+from jinja2.exceptions import TemplateNotFound
 
 
 dict_loader = loaders.DictLoader({
index 7e6d54a02df07a5b1c63ad2fafee1736b200af6d..5cf6f6dcf4f4caa1541d45bf53b309a40f608530 100644 (file)
@@ -64,7 +64,7 @@ def test_simple(env):
 
 
 def test_kwargs_failure(env):
-    from jinja.exceptions import TemplateRuntimeError
+    from jinja2.exceptions import TemplateRuntimeError
     tmpl = env.from_string(KWARGSFAILURE)
     try:
         tmpl.render()
index f6527b660df21f850590ea1cb1649a803bb0d5fe..35d9c3e32802a2613c0b220b293f57f2cc541765 100644 (file)
@@ -7,7 +7,7 @@
     :license: BSD, see LICENSE for more details.
 """
 
-from jinja import Environment
+from jinja2 import Environment
 
 NO_VARIABLE_BLOCK = '''\
 {# i'm a freaking comment #}\
index a0faf18e662bb99912f877de248bdbbb1b190d57..cb470f8e479388de7024c1a1ee3ba02ef706e96f 100644 (file)
@@ -6,7 +6,7 @@
     :copyright: 2007 by Armin Ronacher.
     :license: BSD, see LICENSE for more details.
 """
-from jinja import Environment
+from jinja2 import Environment
 
 
 NONLOCALSET = '''\
index c31c0fbc5f0c33f6740be132b0d7022f051632ae..81cc53381a367dda76af6c974132514043263474 100644 (file)
@@ -6,8 +6,8 @@
     :copyright: 2007 by Armin Ronacher.
     :license: BSD, see LICENSE for more details.
 """
-from jinja import Environment, DictLoader
-from jinja.exceptions import TemplateSyntaxError
+from jinja2 import Environment, DictLoader
+from jinja2.exceptions import TemplateSyntaxError
 
 
 CALL = '''{{ foo('a', c='d', e='f', *['b'], **{'g': 'h'}) }}'''
@@ -46,7 +46,7 @@ TRAILINGCOMMA = '''{{ (1, 2,) }}|{{ [1, 2,] }}|{{ {1: 2,} }}|{{ @(1, 2,) }}'''
 
 
 def test_call():
-    from jinja import Environment
+    from jinja2 import Environment
     env = Environment()
     env.globals['foo'] = lambda a, b, c, e, g: a + b + c + e + g
     tmpl = env.from_string(CALL)
index 2e831044fe91e882c913af32fb4c58a767f17481..7b312c01b64e00e26ded2063177334e560fbd759 100644 (file)
@@ -7,9 +7,9 @@
     :license: BSD, see LICENSE for more details.
 """
 
-from jinja import Environment
-from jinja.exceptions import TemplateRuntimeError
-from jinja.datastructure import SilentUndefined, ComplainingUndefined
+from jinja2 import Environment
+from jinja2.exceptions import TemplateRuntimeError
+from jinja2.datastructure import SilentUndefined, ComplainingUndefined
 
 
 silent_env = Environment(undefined_singleton=SilentUndefined)
index 9fb483f18eb1edc7aa25bdd094b663ec0f0c62af..b1802392e7db9e7a444be66eb7be2eedbb50cd59 100644 (file)
@@ -6,7 +6,7 @@
     :copyright: 2007 by Armin Ronacher.
     :license: BSD, see LICENSE for more details.
 """
-from jinja.exceptions import TemplateSyntaxError
+from jinja2.exceptions import TemplateSyntaxError
 
 KEYWORDS = '''\
 {{ with }}
@@ -58,14 +58,14 @@ def test_raw(env):
 
 
 def test_crazy_raw():
-    from jinja import Environment
+    from jinja2 import Environment
     env = Environment('{', '}', '{', '}')
     tmpl = env.from_string('{raw}{broken foo}{endraw}')
     assert tmpl.render() == '{broken foo}'
 
 
 def test_cache_dict():
-    from jinja.utils import CacheDict
+    from jinja2.utils import CacheDict
     d = CacheDict(3)
     d["a"] = 1
     d["b"] = 2
@@ -77,13 +77,13 @@ def test_cache_dict():
 
 
 def test_stringfilter(env):
-    from jinja.filters import stringfilter
+    from jinja2.filters import stringfilter
     f = stringfilter(lambda f, x: f + x)
     assert f('42')(env, None, 23) == '2342'
 
 
 def test_simplefilter(env):
-    from jinja.filters import simplefilter
+    from jinja2.filters import simplefilter
     f = simplefilter(lambda f, x: f + x)
     assert f(42)(env, None, 23) == 65