def test_flag_setting(self): # import here, that way we don't have to fiddle with sys.path in the global scope from router.app.server import process_message user = factories.UserFactory() inbox = factories.InboxFactory(user=user) with mock.patch("router.app.server.make_email") as mock_make_email: process_message(None, inbox.inbox, inbox.domain.domain) self.assertTrue(mock_make_email.called) user = get_user_model().objects.get(id=user.id) profile = user.inboxenprofile inbox = models.Inbox.objects.get(id=inbox.id) self.assertTrue(inbox.new) self.assertTrue(profile.unified_has_new_messages) # reset some bools inbox.new = False inbox.exclude_from_unified = True inbox.save(update_fields=["new", "exclude_from_unified"]) profile.unified_has_new_messages = False profile.save(update_fields=["unified_has_new_messages"]) with mock.patch("router.app.server.make_email") as mock_make_email: process_message(None, inbox.inbox, inbox.domain.domain) self.assertTrue(mock_make_email.called) user = get_user_model().objects.get(id=user.id) profile = user.inboxenprofile inbox = models.Inbox.objects.get(id=inbox.id) self.assertTrue(inbox.new) self.assertFalse(profile.unified_has_new_messages)
def test_flag_setting(self): # import here, that way we don't have to fiddle with sys.path in the global scope from router.app.server import process_message user = factories.UserFactory() inbox = factories.InboxFactory(user=user) with mock.patch("router.app.server.make_email") as mock_make_email: process_message(None, inbox.inbox, inbox.domain.domain) self.assertTrue(mock_make_email.called) user = get_user_model().objects.get(id=user.id) profile = user.userprofile inbox = models.Inbox.objects.get(id=inbox.id) self.assertTrue(inbox.flags.new) self.assertTrue(profile.flags.unified_has_new_messages) # reset some flags inbox.flags.new = False inbox.flags.exclude_from_unified = True inbox.save(update_fields=["flags"]) profile.flags.unified_has_new_messages = False profile.save(update_fields=["flags"]) with mock.patch("router.app.server.make_email") as mock_make_email: process_message(None, inbox.inbox, inbox.domain.domain) self.assertTrue(mock_make_email.called) user = get_user_model().objects.get(id=user.id) profile = user.userprofile inbox = models.Inbox.objects.get(id=inbox.id) self.assertTrue(inbox.flags.new) self.assertFalse(profile.flags.unified_has_new_messages)
def test_exceptions(self): # import here, that way we don't have to fiddle with sys.path in the global scope from router.app.server import process_message with self.assertRaises(SMTPError) as error: process_message(None, None, None) self.assertEqual(error.exception.code, 550) with self.assertRaises(SMTPError) as error, \ mock.patch.object(models.Inbox.objects, "filter", side_effect=DatabaseError): process_message(None, None, None) self.assertEqual(error.exception.code, 451)