def test_sailthru_on_success(self, mock_sailthru, mock_log_error): """ Ensure that a successful unsubscribe does not trigger an error log """ mock_sailthru.return_value = SailthruResponse(JsonResponse({'ok': True})) force_unsubscribe_all(sender=self.__class__, email=self.user.email) self.assertTrue(mock_sailthru.called) self.assertFalse(mock_log_error.called)
def test_sailthru_on_bad_response(self, mock_sailthru, mock_log_error): mock_sailthru.return_value = SailthruResponse( JsonResponse({ 'error': 100, 'errormsg': 'Got an error' })) with self.assertRaises(Exception): force_unsubscribe_all(sender=self.__class__, user=self.user) self.assertTrue(mock_sailthru.called) self.assertTrue(mock_log_error.called)
def test_sailthru_with_email_changed(self, mock_sailthru, mock_log_error): mock_sailthru.return_value = SailthruResponse(JsonResponse({'ok': True})) force_unsubscribe_all(sender=self.__class__, email=self.user.email, new_email='*****@*****.**') mock_sailthru.assert_called_with("user", { "id": self.user.email, "optout_email": "all", "keys": { "email": "*****@*****.**" }, "fields": { "optout_email": 1, "keys": 1 }, "keysconflict": "merge" }) self.assertFalse(mock_log_error.called)
def test_sailthru_on_bad_response(self, mock_sailthru, mock_log_error): mock_sailthru.return_value = SailthruResponse(JsonResponse({'error': 100, 'errormsg': 'Got an error'})) with self.assertRaises(Exception): force_unsubscribe_all(sender=self.__class__, email=self.user.email) self.assertTrue(mock_sailthru.called) self.assertTrue(mock_log_error.called)
def test_sailthru_on_connection_error(self, mock_sailthru, mock_log_error): mock_sailthru.side_effect = SailthruClientError with self.assertRaises(Exception): force_unsubscribe_all(sender=self.__class__, email=self.user.email) self.assertTrue(mock_log_error.called)