moto/tests/test_core/test_mock_regions.py
2024-01-27 19:38:09 +00:00

62 lines
2.2 KiB
Python

import os
from unittest import SkipTest, mock
import boto3
import pytest
from moto import mock_aws, settings
@mock_aws
def test_use_invalid_region() -> None:
if settings.TEST_SERVER_MODE:
raise SkipTest("ServerMode will throw different errors")
client = boto3.client("sns", region_name="any-region")
with pytest.raises(KeyError) as exc:
client.list_platform_applications()
assert "any-region" in str(exc.value)
@mock_aws
@mock.patch.dict(os.environ, {"AWS_DEFAULT_REGION": "us-east-2"})
def test_use_region_from_env() -> None: # type: ignore[misc]
client = boto3.client("sns")
assert client.list_platform_applications()["PlatformApplications"] == []
@mock_aws
@mock.patch.dict(os.environ, {"AWS_DEFAULT_REGION": "any-region"})
def test_use_unknown_region_from_env() -> None: # type: ignore[misc]
if settings.TEST_SERVER_MODE:
raise SkipTest("Cannot set environment variables in ServerMode")
client = boto3.client("sns")
with pytest.raises(KeyError) as exc:
client.list_platform_applications()
assert "any-region" in str(exc.value)
@mock_aws
@mock.patch.dict(os.environ, {"AWS_DEFAULT_REGION": "any-region"})
@mock.patch.dict(os.environ, {"MOTO_ALLOW_NONEXISTENT_REGION": "trUe"})
def test_use_unknown_region_from_env_but_allow_it() -> None: # type: ignore[misc]
if settings.TEST_SERVER_MODE:
raise SkipTest("Cannot set environemnt variables in ServerMode")
client = boto3.client("sns")
assert client.list_platform_applications()["PlatformApplications"] == []
@mock_aws
@mock.patch.dict(os.environ, {"MOTO_ALLOW_NONEXISTENT_REGION": "trUe"})
def test_use_unknown_region_from_env_but_allow_it__dynamo() -> None: # type: ignore[misc]
if settings.TEST_SERVER_MODE:
raise SkipTest("Cannot set environemnt variables in ServerMode")
dynamo_db = boto3.resource("dynamodb", region_name="test")
dynamo_db.create_table(
TableName="test_table",
KeySchema=[{"AttributeName": "key", "KeyType": "HASH"}],
AttributeDefinitions=[{"AttributeName": "key", "AttributeType": "S"}],
BillingMode="PAY_PER_REQUEST",
)
tables = list(dynamo_db.tables.all())
assert [table.name for table in tables] == ["test_table"]