Exemple #1
0
 def test_get_branded_template(self):
     # Get a branded (non default) template and make sure we get what we expect
     template = CourseEmailTemplate.get_template(name="branded.template")
     assert template.html_template is not None
     assert template.plain_template is not None
     assert 'THIS IS A BRANDED HTML TEMPLATE' in template.html_template
     assert 'THIS IS A BRANDED TEXT TEMPLATE' in template.plain_template
Exemple #2
0
 def test_render_plaintext_without_context(self):
     template = CourseEmailTemplate.get_template()
     base_context = self._get_sample_plain_context()
     for keyname in base_context:
         context = dict(base_context)
         del context[keyname]
         with pytest.raises(KeyError):
             template.render_plaintext("My new plain text.", context)
Exemple #3
0
 def test_render_html_without_context(self):
     template = CourseEmailTemplate.get_template()
     base_context = self._get_sample_html_context()
     for keyname in base_context:
         context = dict(base_context)
         del context[keyname]
         with self.assertRaises(KeyError):
             template.render_htmltext("My new html text.", context)
Exemple #4
0
 def test_render_plain_no_escaping(self):
     template = CourseEmailTemplate.get_template()
     context = self._add_xss_fields(self._get_sample_plain_context())
     message = template.render_plaintext(
         "Dear %%USER_FULLNAME%%, thanks for enrolling in %%COURSE_DISPLAY_NAME%%.",
         context)
     assert '<script>' not in message
     assert context['course_title'] in message
     assert context['name'] in message
Exemple #5
0
 def test_render_html_xss(self):
     template = CourseEmailTemplate.get_template()
     context = self._add_xss_fields(self._get_sample_html_context())
     message = template.render_htmltext(
         "Dear %%USER_FULLNAME%%, thanks for enrolling in %%COURSE_DISPLAY_NAME%%.",
         context)
     assert '<script>' not in message
     assert '&lt;script&gt;alert(&#39;Course Title!&#39;);&lt;/alert&gt;' in message
     assert '&lt;script&gt;alert(&#39;Profile Name!&#39;);&lt;/alert&gt;' in message
Exemple #6
0
 def test_get_branded_template(self):
     # Get a branded (non default) template and make sure we get what we expect
     template = CourseEmailTemplate.get_template(name="branded.template")
     self.assertIsNotNone(template.html_template)
     self.assertIsNotNone(template.plain_template)
     self.assertIn(u"THIS IS A BRANDED HTML TEMPLATE",
                   template.html_template)
     self.assertIn(u"THIS IS A BRANDED TEXT TEMPLATE",
                   template.plain_template)
    def clean_name(self):
        """Validate the name field. Enforce uniqueness constraint on 'name' field"""

        # Note that we get back a blank string in the Form for an empty 'name' field
        # we want those to be set to None in Python and NULL in the database
        name = self.cleaned_data.get("name").strip() or None

        # if we are creating a new CourseEmailTemplate, then we need to
        # enforce the uniquess constraint as part of the Form validation
        if not self.instance.pk:
            try:
                CourseEmailTemplate.get_template(name)
                # already exists, this is no good
                raise ValidationError(
                    f'Name of "{name}" already exists, this must be unique.')
            except CourseEmailTemplate.DoesNotExist:
                # this is actually the successful validation
                pass
        return name
Exemple #8
0
 def test_render_plain(self):
     template = CourseEmailTemplate.get_template()
     context = self._get_sample_plain_context()
     template.render_plaintext("My new plain text.", context)
Exemple #9
0
 def test_render_html(self):
     template = CourseEmailTemplate.get_template()
     context = self._get_sample_html_context()
     template.render_htmltext("My new html text.", context)
Exemple #10
0
 def test_get_template(self):
     # Get the default template, which has name=None
     template = CourseEmailTemplate.get_template()
     assert template.html_template is not None
     assert template.plain_template is not None
Exemple #11
0
 def test_get_missing_template(self):
     with pytest.raises(CourseEmailTemplate.DoesNotExist):
         CourseEmailTemplate.get_template()
Exemple #12
0
 def test_get_template(self):
     # Get the default template, which has name=None
     template = CourseEmailTemplate.get_template()
     self.assertIsNotNone(template.html_template)
     self.assertIsNotNone(template.plain_template)
Exemple #13
0
 def test_get_missing_template(self):
     with self.assertRaises(CourseEmailTemplate.DoesNotExist):
         CourseEmailTemplate.get_template()