def test_existing_different_case(self): sender = 'Existing Sender <*****@*****.**>' mail = self._create_email(sender) person_a = find_author(mail) person_a.save() mail = self._create_email(sender.upper()) person_b = find_author(mail) self.assertEqual(person_b._state.adding, False) self.assertEqual(person_b.id, person_a.id)
def test_existing_sender(self): sender = 'Existing Sender <*****@*****.**>' mail = self._create_email(sender) # create the person first person_a = find_author(mail) person_a.save() # then attempt to parse email with the same 'From' line person_b = find_author(mail) self.assertEqual(person_b._state.adding, False) self.assertEqual(person_b.id, person_a.id)
def test_non_existing_sender(self): sender = 'Non-existing Sender <*****@*****.**>' mail = self._create_email(sender) # don't create the person - attempt to find immediately person = find_author(mail) self.assertEqual(person._state.adding, True) self.assertEqual(person.id, None)
def _test_encoding(self, from_header, sender_name, sender_email): email = self._create_email(from_header) person = find_author(email) person.save() # ensure it was parsed correctly self.assertEqual(person.name, sender_name) self.assertEqual(person.email, sender_email) # ...and that it's queryable from DB db_person = Person.objects.get(name=sender_name) self.assertEqual(person, db_person) db_person = Person.objects.get(email=sender_email) self.assertEqual(person, db_person)
def test_empty(self): email = self._create_email('') with self.assertRaises(ValueError): find_author(email)