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]
|
2024-01-17 10:01:57 +00:00
|
|
|
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()
|