def test_get_temporary_credentials_in_ec2(monkeypatch): monkeypatch.setattr('boto3facade.ec2.in_ec2', lambda: True) Role = namedtuple('Role', 'name') def get_role(): return Role('dummyrole') monkeypatch.setattr('boto3facade.ec2.get_instance_profile_role', get_role) def get_metadata(field): if field == 'iam/security-credentials/dummyrole': return {'AccessKeyId': 'blahblah', 'SecretAccessKey': 'yeahyeah', 'Token': 'pupu'} monkeypatch.setattr('boto3facade.ec2.get_instance_metadata', get_metadata) creds = get_temporary_credentials() # Running tests in an EC2 instance: must have a role associated to it assert isinstance(creds, TemporaryCredentials) expected_fields = {'key_id', 'secret_key', 'token'} assert not set(creds._fields).difference(expected_fields)
def test_get_temporary_credentials_outside_ec2(monkeypatch): monkeypatch.setattr('boto3facade.ec2.in_ec2', lambda: False) creds = get_temporary_credentials() assert creds is None