==============
Test Functions
==============

In addition to filters, Jinja also supports test functions. Test functions
always return either ``True`` or ``False``. Inside the template they are available
using the `is` operator.

Jinja comes with some builtin tests listed in the `designer documentation`_.

Writing Test Functions
======================

Test functions look exactly like filters mentioned in the `filter documentation`_:

.. sourcecode:: python

    def is_even():
        def wrapped(env, context, value):
            return value % 2 == 0
        return wrapped

Now you have to register that test on an environment:

.. sourcecode:: python

    env.tests['even'] = is_even

.. _designer documentation: builtins.txt
.. _filter documentation: filters.txt
