Skip to content

Commit

Permalink
Fixed #628 -- Made corporate membership logo required.
Browse files Browse the repository at this point in the history
  • Loading branch information
timgraham committed Jan 29, 2016
1 parent 013ba27 commit eac0a46
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 6 deletions.
1 change: 1 addition & 0 deletions members/forms.py
Expand Up @@ -16,6 +16,7 @@ def __init__(self, *args, **kwargs):
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:
Expand Down
18 changes: 14 additions & 4 deletions members/test_forms.py
Expand Up @@ -3,15 +3,16 @@
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',
Expand All @@ -21,7 +22,11 @@ def test_submit_success(self):
'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'])
Expand All @@ -39,3 +44,8 @@ def test_submit_success(self):
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.']})
5 changes: 3 additions & 2 deletions members/test_views.py
Expand Up @@ -3,7 +3,8 @@
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.
Expand Down Expand Up @@ -95,7 +96,7 @@ def test_submit_success(self):
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',
Expand Down
16 changes: 16 additions & 0 deletions 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

0 comments on commit eac0a46

Please sign in to comment.