示例#1
0
    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
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
    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)
示例#6
0
    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)
示例#7
0
    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)
示例#8
0
    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