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())
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())
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)
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)
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")
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)
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)
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")
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)
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())
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))