File: forms.py

package info (click to toggle)
python-django-contact-form 0%2Bhg65-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 152 kB
  • ctags: 79
  • sloc: python: 221; makefile: 137
file content (71 lines) | stat: -rw-r--r-- 2,113 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from django.conf import settings
from django.core import mail
from django.test import RequestFactory
from django.test import TestCase

from django.contrib.sites.models import Site

from contact_form.forms import ContactForm


class ContactFormTests(TestCase):
    def test_request_required(self):
        """
        Can't instantiate without an HttpRequest.
        
        """
        self.assertRaises(TypeError, ContactForm)

    def test_valid_data_required(self):
        """
        Can't try to build the message dict unless data is valid.
        
        """
        request = RequestFactory().request()
        data = {'name': 'Test',
                'body': 'Test message'}
        form = ContactForm(request=request, data=data)
        self.assertRaises(ValueError, form.get_message_dict)

    def test_send(self):
        """
        Valid form can and does in fact send email.
        
        """
        request = RequestFactory().request()
        data = {'name': 'Test',
                'email': 'test@example.com',
                'body': 'Test message'}
        form = ContactForm(request=request, data=data)
        self.assertTrue(form.is_valid())

        form.save()
        self.assertEqual(1, len(mail.outbox))

        message = mail.outbox[0]
        self.assertEqual([data['email']],
                         message.recipients())
        self.assertTrue(data['body'] in message.body)
        self.assertEqual(settings.DEFAULT_FROM_EMAIL,
                         message.from_email)

    def test_no_sites(self):
        """
        Sites integration works with or without installed
        contrib.sites.
        
        """
        old_installed = Site._meta.installed
        Site._meta.installed = False

        request = RequestFactory().request()
        data = {'name': 'Test',
                'email': 'test@example.com',
                'body': 'Test message'}
        form = ContactForm(request=request, data=data)
        self.assertTrue(form.is_valid())

        form.save()
        self.assertEqual(1, len(mail.outbox))

        Site._meta.installed = old_installed