diff options
| author | Tim Graham <timograham@gmail.com> | 2016-01-26 18:49:38 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-01-28 19:25:04 -0500 |
| commit | eac0a4615500406d37f58e8d1653b51545f4446a (patch) | |
| tree | b61cc1fb26cff9bb3a66b2a0df5ea512da24aa3d /members | |
| parent | 013ba27d31c3a8fb1051f7648752899078fbc7a0 (diff) | |
Fixed #628 -- Made corporate membership logo required.
Diffstat (limited to 'members')
| -rw-r--r-- | members/forms.py | 1 | ||||
| -rw-r--r-- | members/test_forms.py | 18 | ||||
| -rw-r--r-- | members/test_views.py | 5 | ||||
| -rw-r--r-- | members/utils.py | 16 |
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 |
