# Copyright 2014 Budapest University of Technology and Economics (BME IK) # # This file is part of CIRCLE Cloud. # # CIRCLE is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) # any later version. # # CIRCLE is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along # with CIRCLE. If not, see <http://www.gnu.org/licenses/>. from os import listdir from os.path import isfile, isdir, join import unittest from django.conf import settings from django.template import Template, Context, VariableDoesNotExist from django.template.loader import find_template_loader from django.core.urlresolvers import NoReverseMatch class TemplateSyntaxTestCase(unittest.TestCase): def test_templates(self): """Test all templates for syntax errors.""" for loader_name in settings.TEMPLATE_LOADERS: print loader_name loader = find_template_loader(loader_name) self._test_dir(loader.get_template_sources('')) def _test_dir(self, dir, path="/"): for i in dir: i = join(path, i) if isfile(i): self._test_template(join(path, i)) elif isdir(i): print "%s:" % i self._test_dir(listdir(i), i) def _test_template(self, path): print path try: Template(open(path).read()).render(Context({})) except (NoReverseMatch, VariableDoesNotExist, KeyError, AttributeError, ValueError, ) as e: print e