def test_form_validation_for_blank_group_name(self): form = GroupForm(owner=self.create_owner(), data={ 'name': '', 'contacts': self.create_member_ids() }) self.assertFalse(form.is_valid())
def test_form_validation_for_valid_data_email_no_members(self): form = GroupForm(owner=self.create_owner(), data={ 'name': 'Household expenses', 'contacts': [], 'emails_0': '*****@*****.**', }) self.assertTrue(form.is_valid())
def test_form_validation_for_bad_email(self): form = GroupForm(owner=self.create_owner(), data={ 'name': 'Household expenses', 'emails_0': 'not_an_email', }) self.assertFalse(form.is_valid())
def test_form_validation_for_no_members_and_no_email(self): form = GroupForm(owner=self.create_owner(), data={ 'name': 'Household expenses', 'contacts': [], 'emails_0': '', 'emails_1': '', 'emails_2': '', 'emails_3': '', 'emails_4': '', }) self.assertFalse(form.is_valid()) self.assertRaises(ValidationError, form.clean)
def test_form_validation_for_no_members_and_no_email(self): form = GroupForm(owner=self.create_owner(), data={ 'name': 'Household expenses', 'contacts': [], 'emails_0': '', 'emails_1': '', 'emails_2': '', 'emails_3': '', 'emails_4': '', }) self.assertFalse(form.is_valid()) self.assertRaises( ValidationError, form.clean )
def test_form_validation_for_valid_data_members_and_email(self): owner = self.create_owner() members = self.create_users(3) gang = list(members) gang.append(owner) other_group = Group.objects.create(name="Other") other_group.user_set.add(*gang) form = GroupForm(owner=owner, data={ 'name': 'Household expenses', 'contacts': [member.id for member in members], 'emails_0': '*****@*****.**', 'emails_1': '*****@*****.**', 'emails_2': '*****@*****.**', 'emails_3': '*****@*****.**', 'emails_4': '*****@*****.**', }) self.assertTrue(form.is_valid())
def new_group(request): group_form = None quits_group_form = None user = request.user if request.method == 'POST': members = [id_ for id_ in request.POST.getlist('contacts')] group_data = { 'name': request.POST['name'], 'contacts': members, } emails = [] for i in range(5): key = 'emails_{}'.format(str(i)) try: group_data[key] = request.POST[key] emails.append(request.POST[key]) except: pass group_form = GroupForm(owner=user, data=group_data) if group_form.is_valid() and request.POST.get('currency'): group = group_form.save() quits_group_data = { 'currency': request.POST['currency'], 'group': group.id, } quits_group_form = QuitsGroupForm( owner=user, data=quits_group_data) if quits_group_form.is_valid(): quits_group_form.save() emails = [user.email for user in group.user_set.exclude(is_active=True)] send_invitations(request=request, user=user, emails=emails) return redirect('view_group', group.id) if not group_form: group_form = GroupForm(owner=user) if not quits_group_form: quits_group_form = QuitsGroupForm(owner=request.user) context = { 'group_form': group_form, 'quits_group_form': quits_group_form, } return render(request, 'quits/new_group.html', context)