本文整理汇总了Python中inbox.auth.generic.GenericAuthHandler类的典型用法代码示例。如果您正苦于以下问题:Python GenericAuthHandler类的具体用法?Python GenericAuthHandler怎么用?Python GenericAuthHandler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了GenericAuthHandler类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_successful_reauth_resets_sync_state
def test_successful_reauth_resets_sync_state(db):
settings = {
'provider': 'yahoo',
'settings': {
'name': 'Y.Y!',
'locale': 'fr',
'email': '[email protected]',
'password': 'EverybodyLovesIMAPv4'}
}
email = settings['settings']['email']
handler = GenericAuthHandler(settings['provider'])
account = handler.create_account(email, settings['settings'])
assert handler.verify_account(account) is True
# Brand new accounts have `sync_state`=None.
assert account.sync_state is None
db.session.add(account)
db.session.commit()
# Pretend account sync starts, and subsequently the password changes,
# causing the account to be in `sync_state`='invalid'.
account.mark_invalid()
db.session.commit()
assert account.sync_state == 'invalid'
# Verify the `sync_state` is reset to 'running' on a successful "re-auth".
account = handler.update_account(account, settings['settings'])
assert handler.verify_account(account) is True
assert account.sync_state == 'running'
db.session.add(account)
db.session.commit()
示例2: _create_account
def _create_account(settings, ssl):
email = settings['settings']['email']
handler = GenericAuthHandler(settings['provider'])
credentials = copy.deepcopy(settings)
credentials['settings']['ssl_required'] = ssl
account = handler.create_account(email, credentials['settings'])
return account
示例3: test_imap_not_fully_enabled
def test_imap_not_fully_enabled(monkeypatch):
def folder_list_fail(conn):
raise Exception("LIST failed: '[ALERT] full IMAP support "
"is NOT enabled for this account'")
monkeypatch.setattr('imapclient.IMAPClient.list_folders',
folder_list_fail)
def fake_connect(account):
return MockIMAPClient()
response = {
'email': '[email protected]',
'password': 'test123',
'imap_server_host': '0.0.0.0',
'imap_server_port': 22,
'smtp_server_host': '0.0.0.0',
'smtp_server_port': 23
}
handler = GenericAuthHandler('custom')
acct = handler.create_account(
'[email protected]',
response)
handler.connect_account = fake_connect
handler._supports_condstore = lambda x: True
with pytest.raises(UserRecoverableConfigError):
verified = handler.verify_account(acct)
assert verified is not True
示例4: test_update_account_when_no_server_provided
def test_update_account_when_no_server_provided(db):
email = settings['settings']['email']
imap_host = settings['settings']['imap_server_host']
imap_port = settings['settings']['imap_server_port']
smtp_host = settings['settings']['smtp_server_host']
smtp_port = settings['settings']['smtp_server_port']
handler = GenericAuthHandler(settings['provider'])
account = handler.create_account(email, settings['settings'])
# On successful auth, the account's imap_server is stored.
db.session.add(account)
db.session.commit()
id_ = account.id
db.session.commit()
# Valid updates:
# A future authentication does not include the `imap_server_host` either.
db.session.expire(account)
account = db.session.query(Account).get(id_)
updated_settings = copy.deepcopy(settings)
del updated_settings['settings']['imap_server_host']
del updated_settings['settings']['smtp_server_host']
account = handler.update_account(account, updated_settings['settings'])
db.session.add(account)
db.session.commit()
account = db.session.query(Account).get(id_)
acc_imap_host, acc_imap_port = account.imap_endpoint
assert acc_imap_host == imap_host
assert acc_imap_port == imap_port
acc_smtp_host, acc_smtp_port = account.smtp_endpoint
assert acc_smtp_host == smtp_host
assert acc_smtp_port == smtp_port
# A future authentication has the `imap_server_host=''
# and smtp_server_host=''`.
# This is what happens in the legacy auth flow, since
# Proposal.imap_server_host and smtp_server_host will be set to u''
# if not provided.
db.session.expire(account)
account = db.session.query(Account).get(id_)
updated_settings['settings']['imap_server_host'] = u''
updated_settings['settings']['smtp_server_host'] = u''
account = handler.update_account(account, updated_settings['settings'])
db.session.add(account)
db.session.commit()
account = db.session.query(Account).get(id_)
acc_imap_host, acc_imap_port = account.imap_endpoint
assert acc_imap_host == imap_host
assert acc_imap_port == imap_port
acc_smtp_host, acc_smtp_port = account.smtp_endpoint
assert acc_smtp_host == smtp_host
assert acc_smtp_port == smtp_port
示例5: generic_account
def generic_account(db):
from inbox.auth.generic import GenericAuthHandler
handler = GenericAuthHandler(provider_name='generic')
acc = handler.create_account(db.session, '[email protected]_email.com',
{'email': '[email protected]',
'password': 'hunter2'})
db.session.add(acc)
db.session.commit()
return acc
示例6: local_smtp_account
def local_smtp_account(db):
from inbox.auth.generic import GenericAuthHandler
handler = GenericAuthHandler(provider_name='custom')
acc = handler.create_account(db.session, '[email protected]',
{'email': '[email protected]',
'password': 'hunter2',
'imap_server_host': 'imap-test.nylas.com',
'imap_server_port': 143,
'smtp_server_host': SMTP_SERVER_HOST,
'smtp_server_port': SMTP_SERVER_PORT})
db.session.add(acc)
db.session.commit()
return acc
示例7: test_auth
def test_auth(creds):
handler = GenericAuthHandler(creds['provider'])
email = creds['settings']['email']
account = handler.create_account(email, creds['settings'])
# Test that the account was successfully created by the handler.
if 'smtp_password' in creds['settings']:
assert account.imap_password == creds['settings']['imap_password']
assert account.smtp_password == creds['settings']['smtp_password']
else:
assert account.imap_password == creds['settings']['password']
assert account.smtp_password == creds['settings']['password']
# Test that the account is valid.
assert handler.verify_account(account) is True
# Test that the password can be updated...
bad_creds = {'email': creds['settings']['email'],
'smtp_password': 'bad_password',
'imap_server_host': creds['settings'].get('imap_server_host'),
'imap_server_port': 993,
'smtp_server_host': creds['settings'].get('smtp_server_host'),
'smtp_server_port': 587
}
handler.update_account(account, bad_creds)
assert account.smtp_password == 'bad_password'
# ...but logging in again won't work.
with pytest.raises(UserRecoverableConfigError):
handler.verify_account(account)
示例8: test_create_account
def test_create_account(db):
email = settings['settings']['email']
imap_host = settings['settings']['imap_server_host']
imap_port = settings['settings']['imap_server_port']
smtp_host = settings['settings']['smtp_server_host']
smtp_port = settings['settings']['smtp_server_port']
handler = GenericAuthHandler(settings['provider'])
# Create an authenticated account
account = handler.create_account(email, settings['settings'])
db.session.add(account)
db.session.commit()
# Verify its settings
id_ = account.id
account = db.session.query(Account).get(id_)
assert account.imap_endpoint == (imap_host, imap_port)
assert account.smtp_endpoint == (smtp_host, smtp_port)
示例9: test_create_account
def test_create_account(db):
email = settings['settings']['email']
imap_host = settings['settings']['imap_server_host']
imap_port = settings['settings']['imap_server_port']
smtp_host = settings['settings']['smtp_server_host']
smtp_port = settings['settings']['smtp_server_port']
handler = GenericAuthHandler(settings['provider'])
# Create an authenticated account
account = handler.create_account(email, settings['settings'])
db.session.add(account)
db.session.commit()
# Verify its settings
id_ = account.id
account = db.session.query(Account).get(id_)
assert account.imap_endpoint == (imap_host, imap_port)
assert account.smtp_endpoint == (smtp_host, smtp_port)
# Ensure that the emailed events calendar was created
assert account._emailed_events_calendar is not None
assert account._emailed_events_calendar.name == 'Emailed events'
示例10: test_update_account_with_different_subdomain
def test_update_account_with_different_subdomain(db, monkeypatch):
# Check that you can update the server endpoints for an account
# provided that
# 1/ they're on a subdomain of the same domain name.
# 2/ they have the same IP address.
#
# To test this we use Microsoft's Office365 setup, which
# has mail.office365.com and outlook.office365.com point to
# the same address.
email = settings['settings']['email']
settings['settings']['imap_server_host'] = 'outlook.office365.com'
settings['settings']['smtp_server_host'] = 'outlook.office365.com'
handler = GenericAuthHandler(settings['provider'])
# Create an authenticated account
account = handler.create_account(email, settings['settings'])
db.session.add(account)
db.session.commit()
id_ = account.id
def gethostbyname_patch(x):
return "127.0.0.1"
monkeypatch.setattr(socket, 'gethostbyname', gethostbyname_patch)
# A valid update
updated_settings = copy.deepcopy(settings)
updated_settings['settings']['imap_server_host'] = 'mail.office365.com'
updated_settings['settings']['smtp_server_host'] = 'mail.office365.com'
updated_settings['settings']['name'] = 'Neu!'
account = handler.update_account(account, updated_settings['settings'])
db.session.add(account)
db.session.commit()
account = db.session.query(Account).get(id_)
assert account.name == 'Neu!'
assert account._imap_server_host == 'mail.office365.com'
assert account._smtp_server_host == 'mail.office365.com'
示例11: test_auth
def test_auth(settings):
handler = GenericAuthHandler(settings['provider'])
has_starttls = ('aol' in settings['settings']['imap_server_host'])
if has_starttls:
account = _create_account(settings, ssl=True)
handler.verify_account(account)
else:
account = _create_account(settings, ssl=True)
with pytest.raises(Exception):
handler.verify_account(account)
account = _create_account(settings, ssl=False)
handler.verify_account(account)
示例12: test_update_account
def test_update_account(db):
email = settings['settings']['email']
imap_host = settings['settings']['imap_server_host']
imap_port = settings['settings']['imap_server_port']
smtp_host = settings['settings']['smtp_server_host']
smtp_port = settings['settings']['smtp_server_port']
handler = GenericAuthHandler(settings['provider'])
# Create an authenticated account
account = handler.create_account(email, settings['settings'])
db.session.add(account)
db.session.commit()
id_ = account.id
# A valid update
updated_settings = copy.deepcopy(settings)
updated_settings['settings']['name'] = 'Neu!'
account = handler.update_account(account, updated_settings['settings'])
db.session.add(account)
db.session.commit()
account = db.session.query(Account).get(id_)
assert account.name == 'Neu!'
# Invalid updates
for (attr, value, updated_settings) in generate_endpoint_updates(settings):
assert value in updated_settings['settings'].values()
with pytest.raises(SettingUpdateError):
account = handler.update_account(account, updated_settings['settings'])
db.session.add(account)
db.session.commit()
account = db.session.query(Account).get(id_)
assert getattr(account, attr) != value
assert account.imap_endpoint == (imap_host, imap_port)
assert account.smtp_endpoint == (smtp_host, smtp_port)
示例13: test_double_auth
def test_double_auth(db, mock_auth_imapclient):
settings = {
'provider': 'yahoo',
'settings': {
'name': 'Y.Y!',
'locale': 'fr',
'email': '[email protected]',
'password': 'EverybodyLovesIMAPv4'}
}
email = settings['settings']['email']
password = settings['settings']['password']
mock_auth_imapclient._add_login(email, password)
handler = GenericAuthHandler(settings['provider'])
# First authentication, using a valid password, succeeds.
valid_settings = copy.deepcopy(settings)
account = handler.create_account(email, valid_settings['settings'])
assert handler.verify_account(account) is True
db.session.add(account)
db.session.commit()
id_ = account.id
account = db.session.query(Account).get(id_)
assert account.email_address == email
assert account.imap_username == email
assert account.smtp_username == email
assert account.password == password
assert account.imap_password == password
assert account.smtp_password == password
# Second auth using an invalid password should fail.
invalid_settings = copy.deepcopy(settings)
invalid_settings['settings']['password'] = 'invalid_password'
with pytest.raises(ValidationError):
account = handler.update_account(account, invalid_settings['settings'])
handler.verify_account(account)
db.session.expire(account)
# Ensure original account is unaffected
account = db.session.query(Account).get(id_)
assert account.email_address == email
assert account.imap_username == email
assert account.smtp_username == email
assert account.password == password
assert account.imap_password == password
assert account.smtp_password == password
示例14: test_auth
def test_auth(creds, mock_imapclient):
imap_username = creds['settings'].get('imap_username')
if imap_username is None:
imap_username = creds['settings']['email']
imap_password = creds['settings'].get('imap_password')
if imap_password is None:
imap_password = creds['settings']['password']
mock_imapclient._add_login(imap_username, imap_password)
handler = GenericAuthHandler(creds['provider'])
email = creds['settings']['email']
account = handler.create_account(email, creds['settings'])
# Test that the account was successfully created by the handler.
assert account.imap_password == imap_password
if 'smtp_password' in creds['settings']:
assert account.smtp_password == creds['settings']['smtp_password']
else:
assert account.imap_password == creds['settings']['password']
assert account.smtp_password == creds['settings']['password']
# Test that the account is valid.
assert handler.verify_account(account) is True
# Test that the password can be updated...
bad_creds = {'email': creds['settings']['email'],
'imap_password': 'bad_password',
'imap_server_host': creds['settings'].get('imap_server_host'),
'imap_server_port': 993,
'smtp_server_host': creds['settings'].get('smtp_server_host'),
'smtp_server_port': 587
}
handler.update_account(account, bad_creds)
assert account.imap_password == 'bad_password'
# ...but logging in again won't work.
with pytest.raises(ValidationError):
handler.verify_account(account)