/ / ¿Cómo puedo probar la lógica de la plantilla jinja2? - python, unit-testing, templates, jinja2

¿Cómo puedo probar la unidad con la lógica de la plantilla jinja2? - python, pruebas unitarias, plantillas, jinja2

He estado buscando una forma de probar una plantilla jinja2 por unidad. Ya realicé algunas investigaciones, pero lo único que pude encontrar estaba relacionado con cómo probar las variables pasadas a la plantilla: cómo realizar una prueba unitaria de las variables de plantilla pasadas a la plantilla jinja2 desde el controlador de solicitudes webapp2

En otras palabras, me gustaría probar si la lógica utilizada dentro de la plantilla está generando un resultado esperado.

Pensé que podía crear un archivo "dorado" para poder comparar los archivos generados con el archivo dorado, sin embargo eso requeriría demasiados archivos "dorados" debido a la cantidad de posibilidades.

¿Alguna otra idea?

Respuestas

3 para la respuesta № 1

¿Por qué no simplemente renderizar la plantilla a cadena en su prueba, y luego verificar si la plantilla representada es correcta?

Algo similar a esto:

import jinja2

# assume it is an unittest function
context = {  # your variables to pass to template
"test_var": "test_value"
}
path = "path/to/template/dir"
filename "tempalte_to_test.tpl"

rendered = jinja2.Environment(
loader=jinja2.FileSystemLoader(path)
).get_template(filename).render(context)

# `rendered` is now a string with rendered template
# do some asserts on `rendered` string
# i.e.
assert "test_value" in rendered

Aunque no estoy seguro de cómo calcular la cobertura.