diff --git a/moto/sqs/models.py b/moto/sqs/models.py index b5a64874d..653c5316a 100644 --- a/moto/sqs/models.py +++ b/moto/sqs/models.py @@ -121,7 +121,6 @@ class Queue(object): self.created_timestamp = now self.delay_seconds = 0 self.last_modified_timestamp = now - self.maximum_message_size = 64 << 10 self.message_retention_period = 86400 * 4 # four days self.queue_arn = 'arn:aws:sqs:sqs.us-east-1:123456789012:%s' % self.name self.receive_message_wait_time_seconds = 0 @@ -190,9 +189,6 @@ class Queue(object): return [message for message in self._messages if message.visible and not message.delayed] def add_message(self, message): - if len(message.body) > self.maximum_message_size: - raise InvalidParameterValue() - self._messages.append(message) def get_cfn_attribute(self, attribute_name): diff --git a/moto/sqs/responses.py b/moto/sqs/responses.py index abae83fed..82d24cb6a 100644 --- a/moto/sqs/responses.py +++ b/moto/sqs/responses.py @@ -11,6 +11,7 @@ from .exceptions import ( ) MAXIMUM_VISIBILTY_TIMEOUT = 43200 +MAXIMUM_MESSAGE_LENGTH = 262144 # 256 KiB DEFAULT_RECEIVED_MESSAGES = 1 SQS_REGION_REGEX = r'://(.+?)\.queue\.amazonaws\.com' @@ -106,6 +107,9 @@ class SQSResponse(BaseResponse): message = self.querystring.get("MessageBody")[0] delay_seconds = self.querystring.get('DelaySeconds') + if len(message) > MAXIMUM_MESSAGE_LENGTH: + return "One or more parameters are invalid. Reason: Message must be shorter than 262144 bytes.", dict(status=400) + if delay_seconds: delay_seconds = int(delay_seconds[0]) else: