annotate contact/tests/test_views.py @ 917:0365fdbb4d78

Fix app conflict with messages. Django's messages app label conflicts with our messages app. We can't easily rename our label as that will make us rename database tables. Since our app came first we'll just customize Django messages label. For Django 1.7.7 upgrade.
author Brian Neal <bgneal@gmail.com>
date Mon, 06 Apr 2015 20:02:25 -0500
parents 79a71b9d0a2a
children b957e4829a03
rev   line source
bgneal@819 1 """
bgneal@819 2 Unit tests for the contact application views.
bgneal@819 3
bgneal@819 4 """
bgneal@819 5 from django.test import TestCase
bgneal@819 6 from django.core.urlresolvers import reverse
bgneal@819 7 from django.core import mail
bgneal@819 8
bgneal@819 9
bgneal@819 10 class BaseTestCase(TestCase):
bgneal@819 11 """Simple tests to ensure basic functionality."""
bgneal@819 12
bgneal@819 13 def test_usage(self):
bgneal@819 14 url = reverse('contact-form')
bgneal@819 15 response = self.client.get(url)
bgneal@819 16 self.assertEqual(response.status_code, 200)
bgneal@819 17
bgneal@819 18 post_data = {
bgneal@819 19 'name': 'John Doe',
bgneal@819 20 'email': 'jdoe@example.com',
bgneal@819 21 'subject': 'Test message',
bgneal@819 22 'message': 'Testing contact form.',
bgneal@819 23 }
bgneal@819 24 response = self.client.post(url, data=post_data, follow=True)
bgneal@819 25 self.assertRedirects(response, reverse('contact-thanks'))
bgneal@819 26
bgneal@819 27 self.assertEqual(len(mail.outbox), 1)
bgneal@819 28 email = mail.outbox[0]
bgneal@819 29 self.assertEqual(len(email.recipients()), 1)
bgneal@892 30 self.assertEqual(email.extra_headers['Reply-To'], post_data['email'])
bgneal@892 31 self.assertEqual(email.from_email, 'no_reply@example.com')
bgneal@819 32 self.assertEqual(email.recipients()[0], 'admin@surfguitar101.com')
bgneal@819 33 self.assertTrue(post_data['subject'] in email.subject)
bgneal@819 34 msg = email.message().as_string()
bgneal@819 35 self.assertTrue(post_data['name'] in msg)
bgneal@819 36 self.assertTrue(post_data['email'] in msg)
bgneal@819 37 self.assertTrue(post_data['message'] in msg)
bgneal@819 38
bgneal@819 39 def test_honeypot(self):
bgneal@819 40 url = reverse('contact-form')
bgneal@819 41 post_data = {
bgneal@819 42 'name': 'John Doe',
bgneal@819 43 'email': 'jdoe@example.com',
bgneal@819 44 'subject': 'Test message',
bgneal@819 45 'message': 'Testing contact form.',
bgneal@819 46 'honeypot': 'some spam',
bgneal@819 47 }
bgneal@819 48 response = self.client.post(url, data=post_data)
bgneal@819 49 self.assertEqual(response.status_code, 200)
bgneal@819 50 self.assertEqual(len(mail.outbox), 0)