moto/tests/test_moto_api/seeder/test_seeder.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

57 lines
1.9 KiB
Python
Raw Permalink Normal View History

2024-01-07 12:03:33 +00:00
import unittest
import boto3
import requests
import moto
# https://github.com/getmoto/moto/issues/6592
class TestDifferentAccountsDoesNotBreakSeeding:
def setup_method(self) -> None:
if not moto.settings.TEST_DECORATOR_MODE:
raise unittest.SkipTest(
"Seed behaviour only needs to be tested in DecoratorMode"
)
self.mock = moto.mock_aws()
self.mock.start()
requests.post("http://motoapi.amazonaws.com/moto-api/seed?a=42")
self.sts_client = boto3.client("sts", "us-east-1")
self.ec2_client = boto3.client("ec2", "us-east-1")
self.session_client = self.sts_client.assume_role(
RoleArn="arn:aws:iam::111111111111:role/my-role",
RoleSessionName="role-session-name",
)
self.session = boto3.session.Session(
aws_access_key_id=self.session_client["Credentials"]["AccessKeyId"],
aws_secret_access_key=self.session_client["Credentials"]["SecretAccessKey"],
aws_session_token=self.session_client["Credentials"]["SessionToken"],
)
def teardown_method(self) -> None:
self.mock.stop()
def test_0(self) -> None:
# We seeded Moto in the setup-method
# So our instances should have a fixed InstanceId
instances = self.ec2_client.run_instances(MaxCount=1, MinCount=1)["Instances"]
instance_ids = [instance["InstanceId"] for instance in instances]
assert instance_ids == ["i-73bd4755d05ad7853"]
2024-01-07 12:03:33 +00:00
def test_1(self) -> None:
# Create some data in a different account (111111111111)
self.sts_client.assume_role(
RoleArn="arn:aws:iam::111111111111:role/my-role",
RoleSessionName="role-session-name",
)
def test_2(self) -> None:
# The fact that some data now exists in a different account (111111111111)
# should not change the fixed InstanceId-value
self.test_0()