Skip to content

Commit

Permalink
fix test for AWS
Browse files Browse the repository at this point in the history
  • Loading branch information
baermat committed Apr 29, 2024
1 parent b30a766 commit ca6fea8
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 20 deletions.
50 changes: 31 additions & 19 deletions tests/aws/services/sqs/test_sqs.py
Original file line number Diff line number Diff line change
Expand Up @@ -1334,37 +1334,49 @@ def test_external_hostname_via_host_header(self, monkeypatch, sqs_create_queue,
kwargs = {"flags": re.MULTILINE | re.DOTALL}
assert re.match(rf".*<QueueUrl>\s*{url}/[^<]+</QueueUrl>.*", content, **kwargs)

@markers.aws.unknown
@markers.aws.validated
def test_marker_serialization_query_protocol(
self, sqs_create_queue, aws_client, region_name, create_iam_role_with_policy
self, sqs_create_queue, aws_client, aws_http_client_factory
):
queue_name = f"queue-{short_uid()}"
queue_url = sqs_create_queue(QueueName=queue_name)
message_body = {"foo": "bar"}
aws_client.sqs.send_message(QueueUrl=queue_name, MessageBody=json.dumps(message_body))

# edge_url = config.internal_service_url()
# headers = mock_aws_request_headers(
# "sqs",
# aws_access_key_id=TEST_AWS_ACCESS_KEY_ID,
# region_name=region_name,
# )
# payload = f"Action=SendMessage&QueueUrl={queue_url}&MessageBody={message_body}"
# result = requests.post(edge_url, data=payload, headers=headers)
client = aws_http_client_factory("sqs", region="us-east-1")

response = requests.get(
queue_url,
params={"Action": "ReceiveMessage", "MaxNumberOfMessages": 2},
if is_aws_cloud():
endpoint_url = "https://queue.amazonaws.com"
else:
endpoint_url = config.internal_service_url()

response = client.get(
endpoint_url,
params={"Action": "ReceiveMessage", "QueueUrl": queue_url, "Version": "2012-11-05"},
headers={"Accept": "application/json"},
)

parsed_content = json.loads(response.content.decode("utf-8"))
# TODO: this is an error in LocalStack. Usually it should be Messages[0]['Body']
assert (
json.loads(
parsed_content["ReceiveMessageResponse"]["ReceiveMessageResult"]["Message"]["Body"]
if is_aws_cloud():
assert (
json.loads(
parsed_content["ReceiveMessageResponse"]["ReceiveMessageResult"]["messages"][0][
"Body"
]
)
== message_body
)

# TODO: this is an error in LocalStack. Usually it should be messages[0]['Body']
else:
assert (
json.loads(
parsed_content["ReceiveMessageResponse"]["ReceiveMessageResult"]["Message"][
"Body"
]
)
== message_body
)
== message_body
)

@markers.aws.only_localstack
def test_external_host_via_header_complete_message_lifecycle(
Expand Down
2 changes: 1 addition & 1 deletion tests/aws/services/sqs/test_sqs.validation.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
"last_validated_date": "2023-12-08T16:13:26+00:00"
},
"tests/aws/services/sqs/test_sqs.py::TestSqsProvider::test_marker_serialization_query_protocol": {
"last_validated_date": "2024-04-26T11:07:04+00:00"
"last_validated_date": "2024-04-29T06:07:04+00:00"
},
"tests/aws/services/sqs/test_sqs.py::TestSqsProvider::test_message_deduplication_id_too_long": {
"last_validated_date": "2024-01-04T10:06:26+00:00"
Expand Down

0 comments on commit ca6fea8

Please sign in to comment.