Skip to content

Commit 84837c3

Browse files
committed
fix nits
1 parent 6961c1a commit 84837c3

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

localstack/services/sqs/models.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -171,16 +171,25 @@ class Permission(NamedTuple):
171171

172172

173173
class ReceiveMessageResult:
174+
"""
175+
Object to communicate the result of a "receive messages" operation between the SqsProvider and
176+
the underlying datastructure holding the messages.
177+
"""
178+
174179
successful: list[SqsMessage]
180+
"""The messages that were successfully received from the queue"""
181+
175182
receipt_handles: list[str]
176-
dead_letters: list[SqsMessage]
177-
new_visibility_timeout: Optional[int]
183+
"""The array index position in ``successful`` and ``receipt_handles`` need to be the same (this
184+
assumption is needed when assembling the result in `SqsProvider.receive_message`)"""
185+
186+
dead_letter_messages: list[SqsMessage]
187+
"""All messages that were received more than maxReceiveCount in the redrive policy (if any)"""
178188

179189
def __init__(self):
180190
self.successful = []
181191
self.receipt_handles = []
182-
self.dead_letters = []
183-
self.new_visibility_timeout = None
192+
self.dead_letter_messages = []
184193

185194

186195
class SqsQueue:
@@ -297,7 +306,7 @@ def redrive_policy(self) -> Optional[dict]:
297306
@property
298307
def max_receive_count(self) -> Optional[int]:
299308
"""
300-
Returns the maxReceiveCount attribute of the redrive policy. If not redrive policy is set, then it
309+
Returns the maxReceiveCount attribute of the redrive policy. If no redrive policy is set, then it
301310
returns None.
302311
"""
303312
if redrive_policy := self.redrive_policy:
@@ -408,7 +417,7 @@ def put(
408417

409418
def receive(
410419
self,
411-
num_messages: int = None,
420+
num_messages: int = 1,
412421
wait_time_seconds: int = None,
413422
visibility_timeout: int = None,
414423
) -> ReceiveMessageResult:
@@ -549,7 +558,7 @@ def _put_message(self, message: SqsMessage):
549558

550559
def receive(
551560
self,
552-
num_messages: int = None,
561+
num_messages: int = 1,
553562
wait_time_seconds: int = None,
554563
visibility_timeout: int = None,
555564
) -> ReceiveMessageResult:
@@ -559,7 +568,6 @@ def receive(
559568
visibility_timeout = (
560569
self.visibility_timeout if visibility_timeout is None else visibility_timeout
561570
)
562-
result.new_visibility_timeout = visibility_timeout
563571

564572
block = True if wait_time_seconds else False
565573
timeout = wait_time_seconds or 0
@@ -600,7 +608,7 @@ def receive(
600608
message,
601609
message.receive_count,
602610
)
603-
result.dead_letters.append(message)
611+
result.dead_letter_messages.append(message)
604612
else:
605613
result.successful.append(message)
606614

@@ -614,7 +622,6 @@ def receive(
614622
receipt_handle = self.create_receipt_handle(message)
615623
message.receipt_handles.add(receipt_handle)
616624
self.receipts[receipt_handle] = message
617-
# array index position in `successful` and `receipt_handles` will be the same
618625
result.receipt_handles.append(receipt_handle)
619626

620627
# manage message visibility
@@ -657,7 +664,7 @@ def push(self, message: SqsMessage):
657664
heapq.heappush(self.messages, message)
658665

659666
def __eq__(self, other):
660-
return self.message_group_id == other.message_id
667+
return self.message_group_id == other.message_group_id
661668

662669
def __hash__(self):
663670
return self.message_group_id.__hash__()
@@ -812,7 +819,7 @@ def _put_message(self, message: SqsMessage):
812819

813820
def receive(
814821
self,
815-
num_messages: int = None,
822+
num_messages: int = 1,
816823
wait_time_seconds: int = None,
817824
visibility_timeout: int = None,
818825
) -> ReceiveMessageResult:
@@ -832,7 +839,6 @@ def receive(
832839
visibility_timeout = (
833840
self.visibility_timeout if visibility_timeout is None else visibility_timeout
834841
)
835-
result.new_visibility_timeout = visibility_timeout
836842

837843
block = True if wait_time_seconds else False
838844
timeout = wait_time_seconds or 0
@@ -891,7 +897,7 @@ def receive(
891897
message,
892898
message.receive_count,
893899
)
894-
result.dead_letters.append(message)
900+
result.dead_letter_messages.append(message)
895901
else:
896902
result.successful.append(message)
897903

@@ -911,8 +917,6 @@ def receive(
911917
receipt_handle = self.create_receipt_handle(message)
912918
message.receipt_handles.add(receipt_handle)
913919
self.receipts[receipt_handle] = message
914-
# array index position in `successful`
915-
# l` and `receipt_handles` will be the same
916920
result.receipt_handles.append(receipt_handle)
917921

918922
# manage message visibility

localstack/services/sqs/provider.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -961,11 +961,11 @@ def receive_message(
961961
result = queue.receive(num, wait_time_seconds, visibility_timeout)
962962

963963
# process dead letter messages
964-
if result.dead_letters:
964+
if result.dead_letter_messages:
965965
dead_letter_target_arn = queue.redrive_policy["deadLetterTargetArn"]
966966
dl_queue = self._require_queue_by_arn(context, dead_letter_target_arn)
967967
# TODO: does this need to be atomic?
968-
for standard_message in result.dead_letters:
968+
for standard_message in result.dead_letter_messages:
969969
message = to_sqs_api_message(
970970
standard_message, attribute_names, message_attribute_names
971971
)

0 commit comments

Comments
 (0)