Mercurial > public > sg101
view contact/tests/test_views.py @ 1192:980123d47763
Fix link to queues fork.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sun, 13 Mar 2022 15:53:41 -0500 |
parents | b957e4829a03 |
children |
line wrap: on
line source
""" Unit tests for the contact application views. """ from mock import patch, Mock from django.test import TestCase from django.conf import settings from django.core.urlresolvers import reverse from django.core import mail class BaseTestCase(TestCase): """Simple tests to ensure basic functionality.""" def setUp(self): self.url = reverse('contact-form') @patch('contact.forms.requests.post') def test_usage(self, post_mock): post_response = Mock() post_response.json.return_value = {'success': True} post_mock.return_value = post_response response = self.client.get(self.url) self.assertEqual(response.status_code, 200) post_data = { 'name': 'John Doe', 'email': 'jdoe@example.com', 'subject': 'Test message', 'message': 'Testing contact form.', 'g-recaptcha-response': 'crazy-google-string', } response = self.client.post(self.url, data=post_data, follow=True) self.assertRedirects(response, reverse('contact-thanks')) self.assertEqual(len(mail.outbox), 1) email = mail.outbox[0] self.assertEqual(len(email.recipients()), 1) self.assertEqual(email.extra_headers['Reply-To'], post_data['email']) self.assertEqual(email.from_email, 'no_reply@example.com') self.assertEqual(email.recipients()[0], 'admin@surfguitar101.com') self.assertTrue(post_data['subject'] in email.subject) msg = email.message().as_string() self.assertTrue(post_data['name'] in msg) self.assertTrue(post_data['email'] in msg) self.assertTrue(post_data['message'] in msg) post_mock.assert_called_once_with(settings.RECAPTCHA_URL, data={ 'secret': settings.RECAPTCHA_SECRET_KEY, 'response': 'crazy-google-string', 'remoteip': '127.0.0.1', }) def test_honeypot(self): post_data = { 'name': 'John Doe', 'email': 'jdoe@example.com', 'subject': 'Test message', 'message': 'Testing contact form.', 'honeypot': 'some spam', } response = self.client.post(self.url, data=post_data) self.assertEqual(response.status_code, 200) self.assertEqual(len(mail.outbox), 0) def test_no_captcha_response(self): post_data = { 'name': 'John Doe', 'email': 'jdoe@example.com', 'subject': 'Test message', 'message': 'Testing contact form.', } response = self.client.post(self.url, data=post_data, follow=True) self.assertEqual(response.status_code, 200) self.assertEqual(len(mail.outbox), 0) @patch('contact.forms.requests.post') def test_captcha_failure(self, post_mock): post_response = Mock() post_response.json.return_value = {'success': False} post_mock.return_value = post_response post_data = { 'name': 'John Doe', 'email': 'jdoe@example.com', 'subject': 'Test message', 'message': 'Testing contact form.', 'g-recaptcha-response': 'crazy-google-string', } response = self.client.post(self.url, data=post_data, follow=True) self.assertEqual(response.status_code, 200) self.assertEqual(len(mail.outbox), 0)