summaryrefslogtreecommitdiff
path: root/members
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2016-01-26 18:49:38 -0500
committerTim Graham <timograham@gmail.com>2016-01-28 19:25:04 -0500
commiteac0a4615500406d37f58e8d1653b51545f4446a (patch)
treeb61cc1fb26cff9bb3a66b2a0df5ea512da24aa3d /members
parent013ba27d31c3a8fb1051f7648752899078fbc7a0 (diff)
Fixed #628 -- Made corporate membership logo required.
Diffstat (limited to 'members')
-rw-r--r--members/forms.py1
-rw-r--r--members/test_forms.py18
-rw-r--r--members/test_views.py5
-rw-r--r--members/utils.py16
4 files changed, 34 insertions, 6 deletions
diff --git a/members/forms.py b/members/forms.py
index 24163780..c9ab6e69 100644
--- a/members/forms.py
+++ b/members/forms.py
@@ -16,6 +16,7 @@ class CorporateMemberSignUpForm(forms.ModelForm):
self.checkbox_fields = []
self.radio_select_fields = []
self.label_fields = []
+ self.fields['logo'].required = True
for name, field in self.fields.items():
help_text = field.help_text
if help_text:
diff --git a/members/test_forms.py b/members/test_forms.py
index c677b100..e81622f3 100644
--- a/members/test_forms.py
+++ b/members/test_forms.py
@@ -3,15 +3,16 @@ from django.core import mail
from django.test import TestCase
from .forms import CorporateMemberSignUpForm
+from .utils import get_temporary_image
class CorporateMemberCorporateMemberSignUpFormTests(TestCase):
- def test_submit_success(self):
- data = {
+ def setUp(self):
+ test_image = get_temporary_image()
+ self.valid_data = {
'display_name': 'Foo Widgets',
'billing_name': 'Foo Widgets, Inc.',
- 'logo': '',
'url': 'http://example.com',
'contact_name': 'Joe Developer',
'contact_email': 'joe@example.com',
@@ -21,7 +22,11 @@ class CorporateMemberCorporateMemberSignUpFormTests(TestCase):
'description': 'We make widgets!',
'amount': 2000,
}
- form = CorporateMemberSignUpForm(data)
+ self.file_data = {'logo': test_image}
+
+ def test_submit_success(self):
+ data = self.valid_data
+ form = CorporateMemberSignUpForm(data, self.file_data)
self.assertTrue(form.is_valid())
instance = form.save()
self.assertEqual(instance.display_name, data['display_name'])
@@ -39,3 +44,8 @@ class CorporateMemberCorporateMemberSignUpFormTests(TestCase):
msg.to,
[settings.FUNDRAISING_DEFAULT_FROM_EMAIL, data['contact_email'], 'treasurer@djangoproject.com']
)
+
+ def test_logo_required(self):
+ form = CorporateMemberSignUpForm(self.valid_data) # missing request.FILES
+ self.assertFalse(form.is_valid())
+ self.assertEqual(form.errors, {'logo': ['This field is required.']})
diff --git a/members/test_views.py b/members/test_views.py
index d81d29c7..ed536187 100644
--- a/members/test_views.py
+++ b/members/test_views.py
@@ -3,7 +3,8 @@ from datetime import date, timedelta
from django.core.urlresolvers import reverse
from django.test import TestCase
-from members.models import CorporateMember, DeveloperMember
+from .models import CorporateMember, DeveloperMember
+from .utils import get_temporary_image
# Inherit from TestCase to enable these tests.
@@ -95,7 +96,7 @@ class CorporateMemberJoinViewTests(TestCase):
data = {
'display_name': 'Foo Widgets',
'billing_name': 'Foo Widgets, Inc.',
- 'logo': '',
+ 'logo': get_temporary_image(),
'url': 'http://example.com',
'contact_name': 'Joe Developer',
'contact_email': 'joe@example.com',
diff --git a/members/utils.py b/members/utils.py
new file mode 100644
index 00000000..b81469dc
--- /dev/null
+++ b/members/utils.py
@@ -0,0 +1,16 @@
+from io import BytesIO
+
+from django.core.files.uploadedfile import InMemoryUploadedFile
+from PIL import Image
+
+
+def get_temporary_image():
+ # Testing utility.
+ io = BytesIO()
+ size = (200, 200)
+ color = (255, 0, 0, 0)
+ image = Image.new('RGBA', size, color)
+ image.save(io, format='JPEG')
+ image_file = InMemoryUploadedFile(io, None, 'foo.jpg', 'jpeg', 1, None)
+ image_file.seek(0)
+ return image_file