def test_from_dict_missing_role_session_name(self): data = { "access_steps": [ {"role_name": "foo", "account_id": "123456789012", "external_id": None}, {"role_name": "boo", "account_id": None, "external_id": None}, ], } with self.assertRaises(ValueError): MultiHopAccessor.from_dict(data)
def test_from_dict_to_dict(self): data = { "role_session_name": "foo", "access_steps": [ {"role_name": "foo", "account_id": "123456789012", "external_id": None}, {"role_name": "boo", "account_id": None, "external_id": None}, ], } self.assertDictEqual(data, MultiHopAccessor.from_dict(data).to_dict())
def test_from_dict(self): mha = MultiHopAccessor( role_session_name="foo", access_steps=[ AccessStep(role_name="foo", account_id="123456789012"), AccessStep(role_name="boo"), ], ) data = { "role_session_name": "foo", "access_steps": [ {"role_name": "foo", "account_id": "123456789012", "external_id": None}, {"role_name": "boo", "account_id": None, "external_id": None}, ], } from_dict_mha = MultiHopAccessor.from_dict(data) self.assertEqual(mha, from_dict_mha)
def from_dict(cls: Type["Accessor"], data: Dict[str, Any], cache_creds: bool = True) -> "Accessor": mhas = data.get("multi_hop_accessors", []) credentials_cache = None credentials_cache_dict = data.get("credentials_cache") if credentials_cache_dict is None: if cache_creds: credentials_cache = AWSCredentialsCache() else: credentials_cache = AWSCredentialsCache.from_dict( credentials_cache_dict) return cls( multi_hop_accessors=[ MultiHopAccessor.from_dict(mha) for mha in mhas ], credentials_cache=credentials_cache, )