Exemplo n.º 1
0
 def create_group_with_email_members(self, number=5):
     emails = ['test_{}@email.com'.format(str(i)) for i in range(number)]
     data = {'name': 'Emails group'}
     for i in range(len(emails)):
         data['emails_{}'.format(str(i))] = emails[i]
     form = GroupForm(owner=self.create_owner(), data=data)
     return {'group': form.save(), 'emails': emails}
Exemplo n.º 2
0
 def create_group_with_email_members(self, number=5):
     emails = ['test_{}@email.com'.format(str(i)) for i in range(number)]
     data = {'name': 'Emails group'}
     for i in range(len(emails)):
         data['emails_{}'.format(str(i))] = emails[i]
     form = GroupForm(owner=self.create_owner(), data=data)
     return {'group': form.save(), 'emails': emails}
Exemplo n.º 3
0
 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())
Exemplo n.º 4
0
 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())
Exemplo n.º 5
0
 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())
Exemplo n.º 6
0
 def test_form_save_does_not_recreate_existing_users_by_email(self):
     existing_users = self.create_users()
     form = GroupForm(owner=self.create_owner(), data={
         'name': 'Duplicate existing members',
         'emails_0': '*****@*****.**',
         })
     form.save()
     self.assertListEqual(list(User.objects.exclude(username='******')), existing_users)
Exemplo n.º 7
0
 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())
Exemplo n.º 8
0
 def test_form_renders_email_input(self):
     form = GroupForm(owner=self.create_owner())
     self.assertIn('placeholder="Email address"',
         form.as_p())
     for i in range(5):
         self.assertIn(
             'id="input_emails_{}'.format(str(i)),
             form.as_p()
         )
Exemplo n.º 9
0
 def test_form_save_does_not_recreate_existing_users_by_email(self):
     existing_users = self.create_users()
     form = GroupForm(owner=self.create_owner(),
                      data={
                          'name': 'Duplicate existing members',
                          'emails_0': '*****@*****.**',
                      })
     form.save()
     self.assertListEqual(
         list(User.objects.exclude(username='******')),
         existing_users)
Exemplo n.º 10
0
    def test_form_renders_only_fellow_group_members_as_member_input(self):
        contacts = self.create_users()
        owner = User.objects.create_user(username='******')
        members = list(contacts)
        members.append(owner)
        other_group = Group.objects.create(name="Other")
        other_group.user_set.add(*members)
        not_contact = User.objects.create_user(username='******')

        form = GroupForm(owner=owner)
        for contact in contacts:
            self.assertIn(contact.username, form.as_p())
        self.assertNotIn(not_contact.username, form.as_p())
Exemplo n.º 11
0
    def test_form_renders_only_fellow_group_members_as_member_input(self):
        contacts = self.create_users()
        owner = User.objects.create_user(username='******')
        members = list(contacts)
        members.append(owner)
        other_group = Group.objects.create(name="Other")
        other_group.user_set.add(*members)
        not_contact = User.objects.create_user(username='******')

        form = GroupForm(owner=owner)
        for contact in contacts:
            self.assertIn(contact.username, form.as_p())
        self.assertNotIn(not_contact.username, form.as_p())
Exemplo n.º 12
0
 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)
Exemplo n.º 13
0
 def test_form_save_adds_owner_as_member(self):
     owner = self.create_owner()
     members = self.create_users()
     gang = list(members)
     gang.append(owner)
     other_group = Group.objects.create(name="Other")
     other_group.user_set.add(*gang)
     member_ids = [member.id for member in members]
     form = GroupForm(owner=owner, data={
         'name': 'Household expenses',
         'contacts': member_ids,
         })
     group = form.save()
     self.assertIn(owner, group.user_set.all())
Exemplo n.º 14
0
 def test_form_save_adds_members_to_group(self):
     owner = self.create_owner()
     members = self.create_users()
     gang = list(members)
     gang.append(owner)
     other_group = Group.objects.create(name="Other")
     other_group.user_set.add(*gang)
     member_ids = [member.id for member in members]
     form = GroupForm(owner=owner, data={
         'name': 'Household expenses',
         'contacts': member_ids,
         })
     group = form.save()
     self.assertEqual(list(group.user_set.exclude(username='******')), members)
Exemplo n.º 15
0
 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
     )
Exemplo n.º 16
0
 def test_form_save_adds_owner_as_member(self):
     owner = self.create_owner()
     members = self.create_users()
     gang = list(members)
     gang.append(owner)
     other_group = Group.objects.create(name="Other")
     other_group.user_set.add(*gang)
     member_ids = [member.id for member in members]
     form = GroupForm(owner=owner,
                      data={
                          'name': 'Household expenses',
                          'contacts': member_ids,
                      })
     group = form.save()
     self.assertIn(owner, group.user_set.all())
Exemplo n.º 17
0
 def test_form_save_adds_members_to_group(self):
     owner = self.create_owner()
     members = self.create_users()
     gang = list(members)
     gang.append(owner)
     other_group = Group.objects.create(name="Other")
     other_group.user_set.add(*gang)
     member_ids = [member.id for member in members]
     form = GroupForm(owner=owner,
                      data={
                          'name': 'Household expenses',
                          'contacts': member_ids,
                      })
     group = form.save()
     self.assertEqual(
         list(group.user_set.exclude(username='******')), members)
Exemplo n.º 18
0
 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())
Exemplo n.º 19
0
 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())
Exemplo n.º 20
0
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)
Exemplo n.º 21
0
 def test_form_renders_contacts_input(self):
     form = GroupForm(owner=self.create_owner())
     self.assertIn('id="input_contacts"', form.as_p())
Exemplo n.º 22
0
 def test_form_renders_group_name_input(self):
     form = GroupForm(owner=self.create_owner())
     self.assertIn('placeholder="Group name"', form.as_p())
     self.assertIn('id="input_group_name"', form.as_p())
Exemplo n.º 23
0
 def test_form_renders_contacts_input(self):
     form = GroupForm(owner=self.create_owner())
     self.assertIn('id="input_contacts"', form.as_p())
Exemplo n.º 24
0
 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())
Exemplo n.º 25
0
 def test_form_renders_group_name_input(self):
     form = GroupForm(owner=self.create_owner())
     self.assertIn('placeholder="Group name"', form.as_p())
     self.assertIn('id="input_group_name"', form.as_p())
Exemplo n.º 26
0
 def test_form_renders_email_input(self):
     form = GroupForm(owner=self.create_owner())
     self.assertIn('placeholder="Email address"', form.as_p())
     for i in range(5):
         self.assertIn('id="input_emails_{}'.format(str(i)), form.as_p())
Exemplo n.º 27
0
 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())