mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
retry_event: Remove requirement of failed_tries being already there.
This fixes a bug where retries in the signups queue threw an exception.
This commit is contained in:
@@ -1226,7 +1226,6 @@ def do_send_messages(messages_maybe_none):
|
|||||||
"message": wide_message_dict,
|
"message": wide_message_dict,
|
||||||
"trigger": event['trigger'],
|
"trigger": event['trigger'],
|
||||||
"user_profile_id": event["user_profile_id"],
|
"user_profile_id": event["user_profile_id"],
|
||||||
"failed_tries": 0,
|
|
||||||
},
|
},
|
||||||
lambda x: None,
|
lambda x: None,
|
||||||
call_consume_in_tests=True
|
call_consume_in_tests=True
|
||||||
|
|||||||
@@ -522,9 +522,6 @@ def handle_push_notification(user_profile_id, missed_message):
|
|||||||
apns_payload,
|
apns_payload,
|
||||||
gcm_payload)
|
gcm_payload)
|
||||||
except requests.ConnectionError:
|
except requests.ConnectionError:
|
||||||
if 'failed_tries' not in missed_message:
|
|
||||||
missed_message['failed_tries'] = 0
|
|
||||||
|
|
||||||
def failure_processor(event):
|
def failure_processor(event):
|
||||||
# type: (Dict[str, Any]) -> None
|
# type: (Dict[str, Any]) -> None
|
||||||
logging.warning(
|
logging.warning(
|
||||||
|
|||||||
@@ -312,7 +312,8 @@ def queue_json_publish(queue_name, event, processor, call_consume_in_tests=False
|
|||||||
|
|
||||||
def retry_event(queue_name, event, failure_processor):
|
def retry_event(queue_name, event, failure_processor):
|
||||||
# type: (str, Dict[str, Any], Callable[[Dict[str, Any]], None]) -> None
|
# type: (str, Dict[str, Any], Callable[[Dict[str, Any]], None]) -> None
|
||||||
assert 'failed_tries' in event
|
if 'failed_tries' not in event:
|
||||||
|
event['failed_tries'] = 0
|
||||||
event['failed_tries'] += 1
|
event['failed_tries'] += 1
|
||||||
if event['failed_tries'] > MAX_REQUEST_RETRIES:
|
if event['failed_tries'] > MAX_REQUEST_RETRIES:
|
||||||
failure_processor(event)
|
failure_processor(event)
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ class WorkerTest(ZulipTestCase):
|
|||||||
retries sending the email 3 times and then gives up."""
|
retries sending the email 3 times and then gives up."""
|
||||||
fake_client = self.FakeClient()
|
fake_client = self.FakeClient()
|
||||||
|
|
||||||
data = {'test': 'test', 'failed_tries': 0, 'id': 'test_missed'}
|
data = {'test': 'test', 'id': 'test_missed'}
|
||||||
fake_client.queue.append(('missedmessage_email_senders', data))
|
fake_client.queue.append(('missedmessage_email_senders', data))
|
||||||
|
|
||||||
def fake_publish(queue_name, event, processor):
|
def fake_publish(queue_name, event, processor):
|
||||||
@@ -92,7 +92,7 @@ class WorkerTest(ZulipTestCase):
|
|||||||
fake_client = self.FakeClient()
|
fake_client = self.FakeClient()
|
||||||
|
|
||||||
user_id = self.example_user('hamlet').id
|
user_id = self.example_user('hamlet').id
|
||||||
data = {'user_id': user_id, 'failed_tries': 0, 'id': 'test_missed'}
|
data = {'user_id': user_id, 'id': 'test_missed'}
|
||||||
fake_client.queue.append(('signups', data))
|
fake_client.queue.append(('signups', data))
|
||||||
|
|
||||||
def fake_publish(queue_name, event, processor):
|
def fake_publish(queue_name, event, processor):
|
||||||
|
|||||||
@@ -209,7 +209,6 @@ class TestServiceBotEventTriggers(ZulipTestCase):
|
|||||||
def check_values_passed(queue_name, trigger_event, x, call_consume_in_tests):
|
def check_values_passed(queue_name, trigger_event, x, call_consume_in_tests):
|
||||||
# type: (Any, Union[Mapping[Any, Any], Any], Callable[[Any], None], bool) -> None
|
# type: (Any, Union[Mapping[Any, Any], Any], Callable[[Any], None], bool) -> None
|
||||||
self.assertEqual(queue_name, expected_queue_name)
|
self.assertEqual(queue_name, expected_queue_name)
|
||||||
self.assertEqual(trigger_event["failed_tries"], 0)
|
|
||||||
self.assertEqual(trigger_event["message"]["content"], content)
|
self.assertEqual(trigger_event["message"]["content"], content)
|
||||||
self.assertEqual(trigger_event["message"]["display_recipient"], recipient)
|
self.assertEqual(trigger_event["message"]["display_recipient"], recipient)
|
||||||
self.assertEqual(trigger_event["message"]["sender_email"], self.user_profile.email)
|
self.assertEqual(trigger_event["message"]["sender_email"], self.user_profile.email)
|
||||||
@@ -264,7 +263,6 @@ class TestServiceBotEventTriggers(ZulipTestCase):
|
|||||||
self.assertEqual(queue_name, expected_queue_name)
|
self.assertEqual(queue_name, expected_queue_name)
|
||||||
self.assertEqual(trigger_event["user_profile_id"], self.bot_profile.id)
|
self.assertEqual(trigger_event["user_profile_id"], self.bot_profile.id)
|
||||||
self.assertEqual(trigger_event["trigger"], "private_message")
|
self.assertEqual(trigger_event["trigger"], "private_message")
|
||||||
self.assertEqual(trigger_event["failed_tries"], 0)
|
|
||||||
self.assertEqual(trigger_event["message"]["sender_email"], sender_email)
|
self.assertEqual(trigger_event["message"]["sender_email"], sender_email)
|
||||||
display_recipients = [
|
display_recipients = [
|
||||||
trigger_event["message"]["display_recipient"][0]["email"],
|
trigger_event["message"]["display_recipient"][0]["email"],
|
||||||
@@ -311,7 +309,6 @@ class TestServiceBotEventTriggers(ZulipTestCase):
|
|||||||
self.assertIn(trigger_event["user_profile_id"], profile_ids)
|
self.assertIn(trigger_event["user_profile_id"], profile_ids)
|
||||||
profile_ids.remove(trigger_event["user_profile_id"])
|
profile_ids.remove(trigger_event["user_profile_id"])
|
||||||
self.assertEqual(trigger_event["trigger"], "private_message")
|
self.assertEqual(trigger_event["trigger"], "private_message")
|
||||||
self.assertEqual(trigger_event["failed_tries"], 0)
|
|
||||||
self.assertEqual(trigger_event["message"]["sender_email"], sender_email)
|
self.assertEqual(trigger_event["message"]["sender_email"], sender_email)
|
||||||
self.assertEqual(trigger_event["message"]["type"], u'private')
|
self.assertEqual(trigger_event["message"]["type"], u'private')
|
||||||
mock_queue_json_publish.side_effect = check_values_passed
|
mock_queue_json_publish.side_effect = check_values_passed
|
||||||
|
|||||||
Reference in New Issue
Block a user