def test_message_too_short(self): form = ContactForm({'name': 'John Doe', 'email': '*****@*****.**', 'message': 'Too short', 'subject': 'Error test', 'author': ''}) self.assertFalse(form.is_valid()) message = form.errors.get('message', None) self.assertEqual(len(message), 1) self.assertIn('Please enter a longer message.', message)
def test_invalid_name(self): form = ContactForm({'name': u'\u201CJohn,\u201D @"<.Doe>"', 'email': '*****@*****.**', 'message': 'Long enough' * 10, 'subject': 'Error test', 'author': ''}) self.assertFalse(form.is_valid()) name = form.errors.get('name', None) self.assertIn( 'Your name can\'t contain the characters <, >, @, comma, ., or ".', name)
def test_custom_error_messages(self): form = ContactForm({'name': '', 'email': '', 'message': '', 'subject': '', 'author': ''}) self.assertFalse(form.is_valid()) name = form.errors.get('name', None) email = form.errors.get('email', None) message = form.errors.get('message', None) subject = form.errors.get('subject', None) author = form.errors.get('author', 'no error') self.assertEqual(len(name), 1) self.assertEqual(len(email), 1) self.assertEqual(len(message), 1) self.assertEqual(len(subject), 1) self.assertIn('Please provide your name.', name) self.assertIn('Please provide your email address.', email) self.assertIn('Please provide a message.', message) self.assertIn('Please provide a subject.', subject) self.assertEqual(author, 'no error')
def setUp(self): self.form = ContactForm({'name': 'John Doe', 'email': '*****@*****.**', 'message': 'Long enough' * 10, 'subject': 'Error test', 'author': ''})
class ContactFormTest(TestCase): def setUp(self): self.form = ContactForm({'name': 'John Doe', 'email': '*****@*****.**', 'message': 'Long enough' * 10, 'subject': 'Error test', 'author': ''}) def test_custom_error_messages(self): form = ContactForm({'name': '', 'email': '', 'message': '', 'subject': '', 'author': ''}) self.assertFalse(form.is_valid()) name = form.errors.get('name', None) email = form.errors.get('email', None) message = form.errors.get('message', None) subject = form.errors.get('subject', None) author = form.errors.get('author', 'no error') self.assertEqual(len(name), 1) self.assertEqual(len(email), 1) self.assertEqual(len(message), 1) self.assertEqual(len(subject), 1) self.assertIn('Please provide your name.', name) self.assertIn('Please provide your email address.', email) self.assertIn('Please provide a message.', message) self.assertIn('Please provide a subject.', subject) self.assertEqual(author, 'no error') def test_message_too_short(self): form = ContactForm({'name': 'John Doe', 'email': '*****@*****.**', 'message': 'Too short', 'subject': 'Error test', 'author': ''}) self.assertFalse(form.is_valid()) message = form.errors.get('message', None) self.assertEqual(len(message), 1) self.assertIn('Please enter a longer message.', message) def test_invalid_name(self): form = ContactForm({'name': u'\u201CJohn,\u201D @"<.Doe>"', 'email': '*****@*****.**', 'message': 'Long enough' * 10, 'subject': 'Error test', 'author': ''}) self.assertFalse(form.is_valid()) name = form.errors.get('name', None) self.assertIn( 'Your name can\'t contain the characters <, >, @, comma, ., or ".', name) def test_message_valid(self): self.assertTrue(self.form.is_valid()) message = self.form.errors.get('message', 'no error') self.assertEqual(message, 'no error') def test_email_no_recipient(self): self.assertRaises(BadHeaderError, self.form.send_email) self.assertEqual(len(mail.outbox), 0) # Check that an email isn't sent def test_email_success(self): self.assertTrue(self.form.is_valid()) result = self.form.send_email(to_email=['*****@*****.**']) self.assertEqual(len(mail.outbox), 1) self.assertEqual(mail.outbox[0].to, ['*****@*****.**']) self.assertEqual(mail.outbox[0].from_email, '"John Doe" ' '<*****@*****.**>') self.assertEqual(mail.outbox[0].body, 'Long enough' * 10) self.assertEqual(mail.outbox[0].subject, 'Error test') self.assertTrue(result)