(self, profile=None, sso_token_cache=None)
| 266 | return mock_instance |
| 267 | |
| 268 | def create_session(self, profile=None, sso_token_cache=None): |
| 269 | session = StubbedSession(profile=profile) |
| 270 | if not sso_token_cache: |
| 271 | sso_token_cache = JSONFileCache(self.tempdir) |
| 272 | # We have to set bogus credentials here or otherwise we'll trigger |
| 273 | # an early credential chain resolution. |
| 274 | sts = session.create_client( |
| 275 | 'sts', |
| 276 | aws_access_key_id='spam', |
| 277 | aws_secret_access_key='eggs', |
| 278 | ) |
| 279 | self.mock_client_creator.return_value = sts |
| 280 | assume_role_provider = AssumeRoleProvider( |
| 281 | load_config=lambda: session.full_config, |
| 282 | client_creator=self.mock_client_creator, |
| 283 | cache={}, |
| 284 | profile_name=profile, |
| 285 | credential_sourcer=CanonicalNameCredentialSourcer( |
| 286 | [ |
| 287 | self.env_provider, |
| 288 | self.container_provider, |
| 289 | self.metadata_provider, |
| 290 | ] |
| 291 | ), |
| 292 | profile_provider_builder=ProfileProviderBuilder( |
| 293 | session, |
| 294 | sso_token_cache=sso_token_cache, |
| 295 | ), |
| 296 | ) |
| 297 | stubber = session.stub('sts') |
| 298 | stubber.activate() |
| 299 | |
| 300 | component_name = 'credential_provider' |
| 301 | resolver = session.get_component(component_name) |
| 302 | available_methods = [p.METHOD for p in resolver.providers] |
| 303 | replacements = { |
| 304 | 'env': self.env_provider, |
| 305 | 'iam-role': self.metadata_provider, |
| 306 | 'container-role': self.container_provider, |
| 307 | 'assume-role': assume_role_provider, |
| 308 | } |
| 309 | for name, provider in replacements.items(): |
| 310 | try: |
| 311 | index = available_methods.index(name) |
| 312 | except ValueError: |
| 313 | # The provider isn't in the session |
| 314 | continue |
| 315 | |
| 316 | resolver.providers[index] = provider |
| 317 | |
| 318 | session.register_component('credential_provider', resolver) |
| 319 | return session, stubber |
| 320 | |
| 321 | def test_assume_role(self): |
| 322 | config = ( |
no test coverage detected