本文整理汇总了Python中inbox.mailsync.backends.imap.generic.FolderSyncEngine.poll_impl方法的典型用法代码示例。如果您正苦于以下问题:Python FolderSyncEngine.poll_impl方法的具体用法?Python FolderSyncEngine.poll_impl怎么用?Python FolderSyncEngine.poll_impl使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类inbox.mailsync.backends.imap.generic.FolderSyncEngine
的用法示例。
在下文中一共展示了FolderSyncEngine.poll_impl方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_condstore_flags_refresh
# 需要导入模块: from inbox.mailsync.backends.imap.generic import FolderSyncEngine [as 别名]
# 或者: from inbox.mailsync.backends.imap.generic.FolderSyncEngine import poll_impl [as 别名]
def test_condstore_flags_refresh(db, default_account, all_mail_folder,
mock_imapclient, monkeypatch):
monkeypatch.setattr(
'inbox.mailsync.backends.imap.generic.CONDSTORE_FLAGS_REFRESH_BATCH_SIZE',
10)
uid_dict = uids.example()
mock_imapclient.add_folder_data(all_mail_folder.name, uid_dict)
mock_imapclient.capabilities = lambda: ['CONDSTORE']
folder_sync_engine = FolderSyncEngine(default_account.id,
default_account.namespace.id,
all_mail_folder.name,
default_account.email_address,
'gmail',
BoundedSemaphore(1))
folder_sync_engine.initial_sync()
# Change the labels provided by the mock IMAP server
for k, v in mock_imapclient._data[all_mail_folder.name].items():
v['X-GM-LABELS'] = ('newlabel',)
v['MODSEQ'] = (k,)
folder_sync_engine.highestmodseq = 0
folder_sync_engine.poll_impl()
imapuids = db.session.query(ImapUid). \
filter_by(folder_id=all_mail_folder.id).all()
for imapuid in imapuids:
assert 'newlabel' in [l.name for l in imapuid.labels]
assert folder_sync_engine.highestmodseq == mock_imapclient.folder_status(
all_mail_folder.name, ['HIGHESTMODSEQ'])['HIGHESTMODSEQ']
示例2: test_generic_flags_refresh_expunges_transient_uids
# 需要导入模块: from inbox.mailsync.backends.imap.generic import FolderSyncEngine [as 别名]
# 或者: from inbox.mailsync.backends.imap.generic.FolderSyncEngine import poll_impl [as 别名]
def test_generic_flags_refresh_expunges_transient_uids(
db, generic_account, inbox_folder, mock_imapclient, monkeypatch):
# Check that we delete UIDs which are synced but quickly deleted, so never
# show up in flags refresh.
uid_dict = uids.example()
mock_imapclient.add_folder_data(inbox_folder.name, uid_dict)
inbox_folder.imapfolderinfo = ImapFolderInfo(account=generic_account,
uidvalidity=1,
uidnext=1)
db.session.commit()
folder_sync_engine = FolderSyncEngine(generic_account.id,
generic_account.namespace.id,
inbox_folder.name,
generic_account.email_address,
'custom',
BoundedSemaphore(1))
folder_sync_engine.initial_sync()
folder_sync_engine.poll_impl()
msg = db.session.query(Message).filter_by(
namespace_id=generic_account.namespace.id).first()
transient_uid = ImapUid(folder=inbox_folder, account=generic_account,
message=msg, msg_uid=max(uid_dict) + 1)
db.session.add(transient_uid)
db.session.commit()
folder_sync_engine.last_slow_refresh = None
folder_sync_engine.poll_impl()
with pytest.raises(ObjectDeletedError):
transient_uid.id
示例3: test_new_uids_synced_when_polling
# 需要导入模块: from inbox.mailsync.backends.imap.generic import FolderSyncEngine [as 别名]
# 或者: from inbox.mailsync.backends.imap.generic.FolderSyncEngine import poll_impl [as 别名]
def test_new_uids_synced_when_polling(db, generic_account, inbox_folder,
mock_imapclient):
uid_dict = uids.example()
mock_imapclient.add_folder_data(inbox_folder.name, uid_dict)
inbox_folder.imapfolderinfo = ImapFolderInfo(account=generic_account,
uidvalidity=1,
uidnext=1)
db.session.commit()
folder_sync_engine = FolderSyncEngine(generic_account.id,
generic_account.namespace.id,
inbox_folder.name,
generic_account.email_address,
'custom',
BoundedSemaphore(1))
folder_sync_engine.poll_frequency = 0
folder_sync_engine.poll_impl()
saved_uids = db.session.query(ImapUid).filter(
ImapUid.folder_id == inbox_folder.id)
assert {u.msg_uid for u in saved_uids} == set(uid_dict)
示例4: test_handle_uidinvalid
# 需要导入模块: from inbox.mailsync.backends.imap.generic import FolderSyncEngine [as 别名]
# 或者: from inbox.mailsync.backends.imap.generic.FolderSyncEngine import poll_impl [as 别名]
def test_handle_uidinvalid(db, generic_account, inbox_folder, mock_imapclient):
uid_dict = uids.example()
mock_imapclient.add_folder_data(inbox_folder.name, uid_dict)
inbox_folder.imapfolderinfo = ImapFolderInfo(account=generic_account,
uidvalidity=1,
uidnext=1)
db.session.commit()
folder_sync_engine = FolderSyncEngine(generic_account.id,
generic_account.namespace.id,
inbox_folder.name,
generic_account.email_address,
'custom',
BoundedSemaphore(1))
folder_sync_engine.initial_sync()
mock_imapclient.uidvalidity = 2
with pytest.raises(UidInvalid):
folder_sync_engine.poll_impl()
new_state = folder_sync_engine.resync_uids()
assert new_state == 'initial'
assert db.session.query(ImapUid).filter(
ImapUid.folder_id == inbox_folder.id).all() == []