Mercurial > public > sg101
view contact/tests/test_views.py @ 1189:83dd2db291f7
Added tool to tag MP3 comp files.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Mon, 27 Dec 2021 19:35:53 -0600 |
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)