예제 #1
0
 def _test_required_field(self, field_name):
     u"""
     Check that the form does not validate without a given field.
     """
     del self.form_data[field_name]
     form = BaseContactForm(self.form_data)
     self.assertFalse(form.is_valid())
     self.assertIn(field_name, form.errors)
예제 #2
0
 def test_get_context(self):
     u"""
     get_context() returns a copy of form's cleaned_data.
     """
     form = BaseContactForm(self.form_data)
     self.assertTrue(form.is_valid())
     context = form.get_context()
     self.assertEqual(context, form.cleaned_data)
     self.assertFalse(context is form.cleaned_data)
예제 #3
0
 def test_save(self):
     u"""
     A call to save() on a valid form sends the message.
     """
     form = BaseContactForm(self.form_data)
     self.assertTrue(form.is_valid())
     result = form.save()
     self.assertTrue(result)
     self.assertEqual(len(mail.outbox), 1)
     self.assertIn(self.form_data['subject'], mail.outbox[0].subject)
예제 #4
0
 def test_init_attr_override(self):
     u"""
     Attributes can be overridden on __init__()
     """
     overrides = {
         'subject_intro': 'New subject style: ',
         'from_email': '*****@*****.**',
         'email_recipients': ['*****@*****.**'],
     }
     form = BaseContactForm(self.form_data, **overrides)
     form.is_valid()
     form.save()
     self.assertIn(overrides['subject_intro'], mail.outbox[0].subject)
     self.assertIn(overrides['from_email'], mail.outbox[0].from_email)
     self.assertIn(overrides['email_recipients'][0],
                   mail.outbox[0].recipients())
예제 #5
0
    def test_save_smtp_error(self):
        u"""
        If the email backend raised an error, the message is not sent.
        """
        form = BaseContactForm(self.form_data)
        self.assertTrue(form.is_valid())
        old_send_mail = mail.send_mail

        def new_send_mail(*args):
            raise SMTPException

        try:
            mail.send_mail = new_send_mail
            result = form.save()
            self.assertFalse(result)
            self.assertEqual(len(mail.outbox), 0)
        finally:
            mail.send_mail = old_send_mail
예제 #6
0
 def test_all_fields_valid(self):
     u"""
     When all required fields are supplied, the form is valid.
     """
     form = BaseContactForm(self.form_data)
     self.assertTrue(form.is_valid())