def test_create_sponsor_with_valid_data(self): user = baker.make(settings.AUTH_USER_MODEL) form = SponsorshipApplicationForm(self.data, self.files, user=user) self.assertTrue(form.is_valid(), form.errors) sponsor = form.save() self.assertTrue(sponsor.pk) self.assertEqual(sponsor.name, "CompanyX") self.assertTrue(sponsor.web_logo) self.assertEqual(sponsor.primary_phone, "+14141413131") self.assertEqual(sponsor.mailing_address_line_1, "4th street") self.assertEqual(sponsor.mailing_address_line_2, "424") self.assertEqual(sponsor.city, "New York") self.assertEqual(sponsor.state, "NY") self.assertEqual(sponsor.postal_code, "10212") self.assertEqual(sponsor.country, "US") self.assertEqual(sponsor.country.name, "United States of America") self.assertEqual(sponsor.description, "") self.assertIsNone(sponsor.print_logo.name) self.assertEqual(sponsor.landing_page_url, "") contact = sponsor.contacts.get() self.assertEqual(contact.name, "Bernardo") self.assertEqual(contact.email, "*****@*****.**") self.assertEqual(contact.phone, "+1999999999") self.assertIsNone(contact.user)
def test_use_previous_user_sponsor(self): contact = baker.make(SponsorContact, user__email="*****@*****.**") self.data = {"sponsor": contact.sponsor.id} form = SponsorshipApplicationForm(self.data, self.files, user=contact.user) self.assertTrue(form.is_valid(), form.errors) saved_sponsor = form.save() self.assertTrue(form.user_with_previous_sponsors) self.assertEqual(saved_sponsor, contact.sponsor) self.assertEqual(Sponsor.objects.count(), 1) self.assertEqual(saved_sponsor.contacts.get(), contact)
def test_create_sponsor_with_valid_data_for_non_required_inputs(self, ): self.data["description"] = "Important company" self.data["landing_page_url"] = "https://companyx.com" self.files["print_logo"] = get_static_image_file_as_upload( "psf-logo_print.png", "logo_print.png") form = SponsorshipApplicationForm(self.data, self.files) self.assertTrue(form.is_valid(), form.errors) sponsor = form.save() self.assertEqual(sponsor.description, "Important company") self.assertTrue(sponsor.print_logo) self.assertFalse(form.user_with_previous_sponsors) self.assertEqual(sponsor.landing_page_url, "https://companyx.com")
def test_create_multiple_contacts_and_user_contact(self): user_email = "*****@*****.**" self.data.update({ "contact-1-name": "Secondary", "contact-1-email": user_email, "contact-1-phone": "+1123123123", "contact-TOTAL_FORMS": 2, }) user = baker.make(settings.AUTH_USER_MODEL, email=user_email.upper()) form = SponsorshipApplicationForm(self.data, self.files, user=user) self.assertTrue(form.is_valid(), form.errors) sponsor = form.save() self.assertEqual(2, sponsor.contacts.count()) c1, c2 = sorted(sponsor.contacts.all(), key=lambda c: c.name) self.assertEqual(c1.name, "Bernardo") self.assertTrue(c1.primary) # first contact should be the primary one self.assertIsNone(c1.user) self.assertEqual(c2.name, "Secondary") self.assertFalse(c2.primary) self.assertEqual(c2.user, user)