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)
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)
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)
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())
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
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())