SQS: message send param validation (#7403)
This commit is contained in:
parent
ee9cdfa677
commit
12460e510d
@ -792,6 +792,7 @@ class SQSBackend(BaseBackend):
|
|||||||
self,
|
self,
|
||||||
queue: Queue,
|
queue: Queue,
|
||||||
message_body: str,
|
message_body: str,
|
||||||
|
delay_seconds: int,
|
||||||
deduplication_id: Optional[str] = None,
|
deduplication_id: Optional[str] = None,
|
||||||
group_id: Optional[str] = None,
|
group_id: Optional[str] = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
@ -814,6 +815,12 @@ class SQSBackend(BaseBackend):
|
|||||||
)
|
)
|
||||||
raise InvalidParameterValue(msg)
|
raise InvalidParameterValue(msg)
|
||||||
|
|
||||||
|
if delay_seconds > 0:
|
||||||
|
raise InvalidParameterValue(
|
||||||
|
f"Value {delay_seconds} for parameter DelaySeconds is invalid. Reason: "
|
||||||
|
"The request include parameter that is not valid for this queue type."
|
||||||
|
)
|
||||||
|
|
||||||
if len(message_body) > queue.maximum_message_size: # type: ignore
|
if len(message_body) > queue.maximum_message_size: # type: ignore
|
||||||
msg = f"One or more parameters are invalid. Reason: Message must be shorter than {queue.maximum_message_size} bytes." # type: ignore
|
msg = f"One or more parameters are invalid. Reason: Message must be shorter than {queue.maximum_message_size} bytes." # type: ignore
|
||||||
raise InvalidParameterValue(msg)
|
raise InvalidParameterValue(msg)
|
||||||
@ -843,13 +850,15 @@ class SQSBackend(BaseBackend):
|
|||||||
) -> Message:
|
) -> Message:
|
||||||
queue = self.get_queue(queue_name)
|
queue = self.get_queue(queue_name)
|
||||||
|
|
||||||
self._validate_message(queue, message_body, deduplication_id, group_id)
|
|
||||||
|
|
||||||
if delay_seconds is not None:
|
if delay_seconds is not None:
|
||||||
delay_seconds = int(delay_seconds)
|
delay_seconds = int(delay_seconds)
|
||||||
else:
|
else:
|
||||||
delay_seconds = queue.delay_seconds # type: ignore
|
delay_seconds = queue.delay_seconds # type: ignore
|
||||||
|
|
||||||
|
self._validate_message(
|
||||||
|
queue, message_body, delay_seconds, deduplication_id, group_id
|
||||||
|
)
|
||||||
|
|
||||||
message_id = str(random.uuid4())
|
message_id = str(random.uuid4())
|
||||||
message = Message(message_id, message_body, system_attributes)
|
message = Message(message_id, message_body, system_attributes)
|
||||||
|
|
||||||
@ -917,6 +926,7 @@ class SQSBackend(BaseBackend):
|
|||||||
self._validate_message(
|
self._validate_message(
|
||||||
queue,
|
queue,
|
||||||
entry["MessageBody"],
|
entry["MessageBody"],
|
||||||
|
int(entry.get("DelaySeconds") or 0),
|
||||||
entry.get("MessageDeduplicationId"),
|
entry.get("MessageDeduplicationId"),
|
||||||
entry.get("MessageGroupId"),
|
entry.get("MessageGroupId"),
|
||||||
)
|
)
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user