Source code for mails.tests.test_files

import glob
import os

from django.template.exceptions import TemplateDoesNotExist
from django.test import TestCase

from mails.core import MailEngine
from mails.exceptions import ConfigurationError


[docs]class MailLogFilesTests(TestCase): """ Test if all defined templated emails are configured correctly. """
[docs] def test_all_configuration_files(self): """Test configuration files found are valid.""" folder = 'templates/email' files = glob.glob('{}/**/*.json'.format(folder), recursive=True) i = 0 for path_file in files: file_name = path_file.replace(folder + '/', '') mail_code = os.path.splitext(file_name)[0] if mail_code.startswith('test'): # Skip all test files continue try: engine = MailEngine(mail_code) engine._read_configuration_file() engine._detect_and_save_object() engine._check_template_exists() engine._validate_configuration() except Exception as e: self.fail('Mail ("{}") configuration invalid:\n{}'.format(mail_code, e)) i += 1 print('Tested {} files'.format(i))