def __init__(self, provider, identifier, multipass_data=None, **data): self.provider = provider self.identifier = text_type(identifier) if not provider.supports_refresh: assert multipass_data is None self.multipass_data = None else: self.multipass_data = dict(multipass_data or {}, _provider=provider.name) mapping = provider.settings.get('mapping') self.data = MultiDict(convert_provider_data(data, mapping or {}, self.provider.settings['identity_info_keys']))
def map(self, mapping): """Creates a new instance with transformed data keys :param mapping: The dict mapping the current data keys to the the keys that are expected by the identity provider. Any key that is not in `mapping` is kept as-is. """ missing_keys = set(mapping.values()) - set(self.data) if missing_keys: raise KeyError(next(iter(missing_keys))) return AuthInfo(self.provider, **convert_provider_data(self.data, mapping))
def __init__(self, provider, identifier, multipass_data=None, secure_login=None, **data): self.provider = provider self.secure_login = secure_login self.identifier = identifier.decode('utf-8') if isinstance( identifier, bytes_type) else text_type(identifier) if not provider.supports_refresh: assert multipass_data is None self.multipass_data = None else: self.multipass_data = dict(multipass_data or {}, _provider=provider.name) mapping = provider.settings.get('mapping') self.data = MultiDict( convert_provider_data( data, mapping or {}, self.provider.settings['identity_info_keys']))
def test_convert_provider_data(provider_data, mapping, key_filter, result): assert convert_provider_data(provider_data, mapping, key_filter) == result