class test_Session(TestCase): def setUp(self): self.session = Session() def test_client(self): assert self.session.client('aaaa') is None assert type(self.session.client('s3')).__name__ == 'S3' def test_client_boto(self): assert "Unknown service: 'aaaa'. Valid service names are:" in self.session.client_boto3( 'aaaa').get('data') Globals.aws_session_profile_name = 'bad_profile' assert type( self.session.client_boto3('s3').get('client')).__name__ == 'S3' Globals.aws_session_profile_name = 'default'
class test_Session(Unit_Test): def setUp(self): super().setUp() self.session = Session() def test_client(self): assert self.session.client('aaaa') is None assert type(self.session.client('s3')).__name__ == 'S3' def test_client_boto3(self): assert "Unknown service: 'aaaa'. Valid service names are:" in self.session.client_boto3( 'aaaa').get('data') AWS_Config().set_aws_session_profile_name('bad_profile') assert type( self.session.client_boto3('s3').get('client')).__name__ == 'S3' AWS_Config().set_aws_session_profile_name('default') def test_profiles(self): profiles = self.session.profiles() if len(set(profiles)) > 0: pass # todo: add tests when there are credentials configured at ~/.aws/credentials #assert set(self.session.profiles().get('default')) == {'aws_access_key_id', 'aws_secret_access_key', 'region'} @pytest.mark.skip('Fix test') def test_session(self): assert self.session.session().profile_name == AWS_Config( ).aws_session_profile_name() assert self.session.session().region_name == AWS_Config( ).aws_session_region_name() with Temp_User() as temp_user: iam = temp_user.iam user_info = iam.user_info() access_key = iam.user_access_key_create(wait_for_key_working=True) aws_access_key_id = access_key.get('AccessKeyId') aws_secret_access_key = access_key.get('SecretAccessKey') session = boto3.Session( aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key) user_identity = session.client('sts').get_caller_identity() assert user_identity.get('UserId') == user_info.get('UserId') assert user_identity.get('Arn') == user_info.get('Arn') self.result = user_identity