Ejemplo n.º 1
0
    def test_location_from_contact(self):
        """
        If location information is input (include address label/name), then
        a location should be created along with the contact.

        """
        request = Mock()
        request.configure_mock(user=self.staff_user, impersonator=None)
        data = {
            "name": "John Doe",
            "partner": self.partner.pk,
            "company_id": 1
        }
        address_info = {
            'label': 'Home',
            'address_line_one': "123 Fake St",
            'address_line_two': "Ste 321",
            'city': "Somewhere",
            "state": "NM"}
        data.update(address_info)
        form = ContactForm(data=data)
        self.assertTrue(form.is_valid())
        form.save(request, self.partner.pk)

        self.assertTrue(Location.objects.filter(**address_info).exists())
Ejemplo n.º 2
0
    def test_location_from_contact(self):
        """
        If location information is input (include address label/name), then
        a location should be created along with the contact.

        """
        request = Mock()
        request.configure_mock(user=self.staff_user, impersonator=None)
        data = {
            "name": "John Doe",
            "partner": self.partner.pk,
            "company_id": 1
        }
        address_info = {
            'label': 'Home',
            'address_line_one': "123 Fake St",
            'address_line_two': "Ste 321",
            'city': "Somewhere",
            "state": "NM"
        }
        data.update(address_info)
        form = ContactForm(data=data)
        self.assertTrue(form.is_valid())
        form.save(request, self.partner.pk)

        self.assertTrue(Location.objects.filter(**address_info).exists())
Ejemplo n.º 3
0
 def test_add_contact_last_action_time(self):
     """
         Verify last action time is created when contact record form is saved
     """
     new_form = ContactForm(data=self.data)
     self.assertTrue(new_form.is_valid())
     self.assertIsNone(new_form.fields.get('last_action_time'))
     saved_form_instance = new_form.save(user=self.contact_user, partner=self.partner)
     self.assertIsNotNone(saved_form_instance.last_action_time)
Ejemplo n.º 4
0
 def test_add_contact_last_action_time(self):
     """
         Verify last action time is created when contact record form is saved
     """
     request = Mock()
     request.configure_mock(user=self.contact_user, impersonator=None)
     new_form = ContactForm(data=self.data)
     self.assertTrue(new_form.is_valid())
     self.assertIsNone(new_form.fields.get('last_action_time'))
     saved_form_instance = new_form.save(request=request,
             partner=self.partner)
     self.assertIsNotNone(saved_form_instance.last_action_time)
Ejemplo n.º 5
0
 def test_add_contact_last_action_time(self):
     """
         Verify last action time is created when contact record form is saved
     """
     request = Mock()
     request.configure_mock(user=self.contact_user, impersonator=None)
     new_form = ContactForm(data=self.data)
     self.assertTrue(new_form.is_valid())
     self.assertIsNone(new_form.fields.get('last_action_time'))
     saved_form_instance = new_form.save(request=request,
                                         partner=self.partner)
     self.assertIsNotNone(saved_form_instance.last_action_time)
Ejemplo n.º 6
0
 def test_input_sanitized(self):
     """
     Test that extra whitespace is stripped when saving the form. This works
     because ContactForm is a subclass of
     universal.form.NormalizedModelForm.
     """
     self.data['name'] = "                    John    Doe            "
     form = ContactForm(instance=self.contact, data=self.data)
     self.assertTrue(form.is_valid())
     form.save(self.staff_user, self.partner.pk)
     
     contact = Contact.objects.get(email=self.data['email'])
     self.assertEqual(contact.name, "John Doe")
Ejemplo n.º 7
0
    def test_disable_email_changing_for_existing_user(self):
        """
        You shouldn't be able to edit the email for contacts that have
        been attached to users.

        """
        self.data['email'] = '*****@*****.**'
        form = ContactForm(instance=self.contact, data=self.data)
        self.assertTrue(form.is_valid())
        form.save(self.staff_user, self.partner.pk)
        self.assertNotEqual(self.contact.email, self.data['email'])
        email_count = Contact.objects.filter(email=self.data['email']).count()
        self.assertEqual(email_count, 0)
Ejemplo n.º 8
0
    def test_disable_email_changing_for_existing_user(self):
        """
        You shouldn't be able to edit the email for contacts that have
        been attached to users.

        """
        request = Mock()
        request.configure_mock(user=self.staff_user, impersonator=None)
        self.data['email'] = '*****@*****.**'
        form = ContactForm(instance=self.contact, data=self.data)
        self.assertTrue(form.is_valid())
        form.save(request, self.partner.pk)
        self.assertNotEqual(self.contact.email, self.data['email'])
        email_count = Contact.objects.filter(email=self.data['email']).count()
        self.assertEqual(email_count, 0)
Ejemplo n.º 9
0
    def test_input_sanitized(self):
        """
        Test that extra whitespace is stripped when saving the form. This works
        because ContactForm is a subclass of
        universal.form.NormalizedModelForm.

        """
        request = Mock()
        request.configure_mock(user=self.staff_user, impersonator=None)
        self.data['name'] = "                    John    Doe            "
        form = ContactForm(instance=self.contact, data=self.data)
        self.assertTrue(form.is_valid())
        form.save(request, self.partner.pk)

        contact = Contact.objects.get(email=self.data['email'])
        self.assertEqual(contact.name, "John Doe")
Ejemplo n.º 10
0
    def test_edit_contact_last_action_time(self):
        """
        Verify last action time is updated when contact record form is
        edited

        """
        request = Mock()
        request.configure_mock(user=self.contact_user, impersonator=None)
        # save form for base instance
        original_instance = ContactForm(data=self.data).save(
            request, partner=self.partner)
        original_time = original_instance.last_action_time

        # resave form to "update" instance
        edited_instance = ContactForm(data=self.data,
                                      instance=original_instance).save(
                                          request, partner=self.partner)
        self.assertEqual(original_instance.pk, edited_instance.pk)
        self.assertNotEqual(original_time, edited_instance.last_action_time)
Ejemplo n.º 11
0
    def test_location_from_contact(self):
        """
        If location information is inputted (include address label/name), then
        a location should be created along with the contact.
        """

        data = {
            "name": "John Doe",
            "partner": self.partner.pk
        }
        address_info = {
            'label': 'Home',
            'address_line_one': "123 Fake St",
            'address_line_two': "Ste 321",
            'city': "Somewhere",
            "state": "NM"}
        data.update(address_info)
        data['company_id'] = 1
        form = ContactForm(data=data)
        self.assertTrue(form.is_valid())
        form.save(self.staff_user, self.partner.pk)

        self.assertTrue(Location.objects.filter(**address_info).exists())
Ejemplo n.º 12
0
def save_item(request):
    """
    Generic save for Partner and Contact Forms.

    """
    company = get_company_or_404(request)
    content_id = int(request.REQUEST.get('ct') or 0)

    if content_id == ContentType.objects.get_for_model(Contact).id:
        item_id = request.REQUEST.get('id') or None
        try:
            partner_id = int(request.REQUEST.get('partner') or 0)
        except TypeError:
            raise Http404

        partner = get_object_or_404(company.partner_set.all(), id=partner_id)

        if item_id:
            try:
                item = Contact.objects.get(partner=partner, pk=item_id)
            except Contact.DoesNotExist:
                raise Http404
            else:
                form = ContactForm(instance=item, auto_id=False,
                                   data=request.POST)
                if form.is_valid():
                    form.save(request.user, partner)
                    return HttpResponse(status=200)
                else:
                    return HttpResponse(json.dumps(form.errors))
        form = ContactForm(request.POST)
        if form.is_valid():
            form.save(request.user, partner)
            return HttpResponse(status=200)
        else:
            return HttpResponse(json.dumps(form.errors))

    if content_id == ContentType.objects.get_for_model(Partner).id:
        try:
            partner_id = int(request.REQUEST.get('partner'))
        except TypeError:
            raise Http404

        partner = get_object_or_404(company.partner_set.all(), id=partner_id)
        form = PartnerForm(instance=partner, auto_id=False, data=request.POST)
        if form.is_valid():
            form.save(request.user, partner)
            return HttpResponse(status=200)
        else:
            return HttpResponse(json.dumps(form.errors))