def test_nova_context_processors(self): """ Verify that NewsletterIssues use NOVA_CONTEXT_PROCESSORS to render themselves when render() is called """ old_settings = getattr(settings, 'NOVA_CONTEXT_PROCESSORS', '!unset') settings.NOVA_CONTEXT_PROCESSORS = [ 'nova.tests.test_context_processor' ] try: issue = NewsletterIssue(template="{{ test }}") issue.newsletter = self.newsletter1 issue.save() self.assertEqual( 'extra test context', issue.render(extra_context={ 'email': EmailAddress(email='*****@*****.**') })) finally: if old_settings == '!unset': del settings.NOVA_CONTEXT_PROCESSORS else: settings.NOVA_CONTEXT_PROCESSORS = old_settings
def test_default_tracking_domain(self): """ Verify that on save a NewsletterIssue is assigned a default tracking domain from the parent Newsletter. """ tracking_domain = 'darkhorse.com' self.newsletter1.default_tracking_domain = tracking_domain self.newsletter1.save() # Sanity check self.assertEqual(self.newsletter1.default_tracking_domain, tracking_domain) issue = NewsletterIssue() issue.subject = 'Test' issue.newsletter = self.newsletter1 issue.save() self.assertTrue(issue.tracking_domain not in ( '', None, )) self.assertEqual(issue.tracking_domain, issue.newsletter.default_tracking_domain) # Verify an existing tracking domain is not overwritten tracking_domain = 'tfaw.com' issue.tracking_domain = tracking_domain issue.save() self.assertEqual(tracking_domain, issue.tracking_domain) self.assertNotEqual(issue.tracking_domain, issue.newsletter.default_tracking_domain)
def test_render(self): """ Verify that the NewsletterIssue template is correctly rendered. """ email = '*****@*****.**' template = """\ Issue ID: {{ issue.pk }} Date: {% now "Y-m-d" %} Email: {{ email }}""" issue = NewsletterIssue() issue.subject = 'Test' issue.template = template issue.newsletter = self.newsletter1 issue.save() expected_template = """\ Issue ID: {issue_id} Date: {date:%Y-%m-%d} Email: {email}""".format(issue_id=issue.pk, date=datetime.now(), email=email) rendered_template = issue.render(template=template, extra_context={'email': email}) self.assertEqual(rendered_template, expected_template)
def test_default_template(self): """ Verify that on save a NewsletterIssue is assigned a default template from the parent Newsletter. """ template_name = 'nova/test.html' self.newsletter1.default_template = template_name self.newsletter1.save() # Sanity check self.assertEqual(self.newsletter1.default_template, template_name) issue = NewsletterIssue() issue.subject = 'Test' issue.newsletter = self.newsletter1 issue.save() self.assertTrue(issue.template not in ( '', None, )) context = Context({}) expected_template = render_to_string(template_name, context) issue_template = Template(issue.template).render(context) self.assertEqual(expected_template, issue_template) # Verify an existing template is not overwritten new_template = 'hai' issue.template = new_template issue.save() self.assertEqual(new_template, NewsletterIssue.objects.get(pk=issue.pk).template)
def test_default_tracking_domain(self): """ Verify that on save a NewsletterIssue is assigned a default tracking domain from the parent Newsletter. """ tracking_domain = 'darkhorse.com' self.newsletter1.default_tracking_domain = tracking_domain self.newsletter1.save() # Sanity check self.assertEqual(self.newsletter1.default_tracking_domain, tracking_domain) issue = NewsletterIssue() issue.subject = 'Test' issue.newsletter = self.newsletter1 issue.save() self.assertTrue(issue.tracking_domain not in ('', None,)) self.assertEqual(issue.tracking_domain, issue.newsletter.default_tracking_domain) # Verify an existing tracking domain is not overwritten tracking_domain = 'tfaw.com' issue.tracking_domain = tracking_domain issue.save() self.assertEqual(tracking_domain, issue.tracking_domain) self.assertNotEqual(issue.tracking_domain, issue.newsletter.default_tracking_domain)
def test_default_template(self): """ Verify that on save a NewsletterIssue is assigned a default template from the parent Newsletter. """ template_name = 'nova/test.html' self.newsletter1.default_template = template_name self.newsletter1.save() # Sanity check self.assertEqual(self.newsletter1.default_template, template_name) issue = NewsletterIssue() issue.subject = 'Test' issue.newsletter = self.newsletter1 issue.save() self.assertTrue(issue.template not in ('', None,)) context = Context({}) expected_template = render_to_string(template_name, context) issue_template = Template(issue.template).render(context) self.assertEqual(expected_template, issue_template) # Verify an existing template is not overwritten new_template = 'hai' issue.template = new_template issue.save() self.assertEqual(new_template, NewsletterIssue.objects.get(pk=issue.pk).template)
def test_nova_context_processors(self): """ Verify that NewsletterIssues use NOVA_CONTEXT_PROCESSORS to render themselves when render() is called """ old_settings = getattr(settings, 'NOVA_CONTEXT_PROCESSORS', '!unset') settings.NOVA_CONTEXT_PROCESSORS = ['nova.tests.test_context_processor'] try: issue = NewsletterIssue(template="{{ test }}") issue.newsletter = self.newsletter1 issue.save() self.assertEqual('extra test context', issue.render(extra_context={ 'email': EmailAddress(email='*****@*****.**')})) finally: if old_settings == '!unset': del settings.NOVA_CONTEXT_PROCESSORS else: settings.NOVA_CONTEXT_PROCESSORS = old_settings