moto/tests/test_core/test_request_mocking.py
2023-11-30 14:55:51 -01:00

52 lines
1.4 KiB
Python

import boto3
import pytest
import requests
from moto import mock_s3, mock_sqs, mock_sts, settings
@mock_sqs
@pytest.mark.network
def test_passthrough_requests() -> None:
conn = boto3.client("sqs", region_name="us-west-1")
conn.create_queue(QueueName="queue1")
res = requests.get("https://google.com/")
assert res.status_code < 400
if not settings.TEST_SERVER_MODE:
@mock_sqs
def test_requests_to_amazon_subdomains_dont_work() -> None:
res = requests.get("https://fakeservice.amazonaws.com/foo/bar")
assert res.content == b"The method is not implemented"
assert res.status_code == 400
@mock_sts
@mock_s3
def test_decorator_ordering() -> None:
"""
https://github.com/getmoto/moto/issues/3790#issuecomment-803979809
"""
bucket_name = "banana-slugs"
key = "trash-file"
region = "us-east-1"
client = boto3.client("s3", region_name=region)
s3 = boto3.resource("s3", region_name=region)
bucket = s3.Bucket(bucket_name)
bucket.create()
bucket.put_object(Body=b"ABCD", Key=key)
presigned_url = client.generate_presigned_url(
ClientMethod=client.get_object.__name__,
Params={
"Bucket": bucket_name,
"Key": key,
"ResponseContentDisposition": "attachment;filename=bar",
},
)
resp = requests.get(presigned_url)
assert resp.status_code == 200 # type: ignore[attr-defined]