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:
Tim Abbott
2017-10-27 18:14:13 -07:00
parent 8b6b4e043f
commit fa55d7ed33
5 changed files with 4 additions and 10 deletions

View File

@@ -1226,7 +1226,6 @@ def do_send_messages(messages_maybe_none):
"message": wide_message_dict,
"trigger": event['trigger'],
"user_profile_id": event["user_profile_id"],
"failed_tries": 0,
},
lambda x: None,
call_consume_in_tests=True

View File

@@ -522,9 +522,6 @@ def handle_push_notification(user_profile_id, missed_message):
apns_payload,
gcm_payload)
except requests.ConnectionError:
if 'failed_tries' not in missed_message:
missed_message['failed_tries'] = 0
def failure_processor(event):
# type: (Dict[str, Any]) -> None
logging.warning(

View File

@@ -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):
# 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
if event['failed_tries'] > MAX_REQUEST_RETRIES:
failure_processor(event)

View File

@@ -67,7 +67,7 @@ class WorkerTest(ZulipTestCase):
retries sending the email 3 times and then gives up."""
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))
def fake_publish(queue_name, event, processor):
@@ -92,7 +92,7 @@ class WorkerTest(ZulipTestCase):
fake_client = self.FakeClient()
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))
def fake_publish(queue_name, event, processor):

View File

@@ -209,7 +209,6 @@ class TestServiceBotEventTriggers(ZulipTestCase):
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
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"]["display_recipient"], recipient)
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(trigger_event["user_profile_id"], self.bot_profile.id)
self.assertEqual(trigger_event["trigger"], "private_message")
self.assertEqual(trigger_event["failed_tries"], 0)
self.assertEqual(trigger_event["message"]["sender_email"], sender_email)
display_recipients = [
trigger_event["message"]["display_recipient"][0]["email"],
@@ -311,7 +309,6 @@ class TestServiceBotEventTriggers(ZulipTestCase):
self.assertIn(trigger_event["user_profile_id"], profile_ids)
profile_ids.remove(trigger_event["user_profile_id"])
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"]["type"], u'private')
mock_queue_json_publish.side_effect = check_values_passed