Testando tags e filtros customizados no Django
escrito em 18/09/2010
TweetO sistema de templates do Django traz nativamente uma grande variedade de tags e filtros, mas, em vários casos é necessário criar tags e filtros customizados.
Criar tags e filtros está bem documentado na documentação oficial do Django, mas, como testar tags e filtros customizados é algo que gera muitas dúvidas em vários desenvolvedores.
Uma forma simples para testar filtros e tags é utilizar a própria Template API do Django para criar e renderizar uma template que utilize um filtro ou tag a ser testado.
Um teste para um filtro 'reverse' que inverte uma string, seria da seguinte maneira:
from django.test import TestCase
from django.template import Context, Template
class TestFilter(TestCase):
def test_lower_filter(self):
html = '{% load reverse %}'
html += '{{ username|reverse }}'
template = Template(html)
context = Context({'username': 'ozzy'})
assert 'yzzo' == template.render(context)
Assim é possivel fazer TDD no desenvolvimento de filtros e tags sem sofrimento.