fix configure_canceled test

This commit is contained in:
holger krekel
2020-05-20 19:10:36 +02:00
parent 2279e18329
commit 2f09bb468e
3 changed files with 17 additions and 7 deletions

View File

@@ -297,7 +297,7 @@ def acfactory(pytestconfig, tmpdir, request, session_liveconfig, data):
return ac, dict(configdict) return ac, dict(configdict)
def get_online_configuring_account(self, mvbox=False, sentbox=False, move=False, def get_online_configuring_account(self, mvbox=False, sentbox=False, move=False,
pre_generated_key=True, quiet=False, config={}): pre_generated_key=True, quiet=False, config={}, start=True):
ac, configdict = self.get_online_config( ac, configdict = self.get_online_config(
pre_generated_key=pre_generated_key, quiet=quiet) pre_generated_key=pre_generated_key, quiet=quiet)
configdict.update(config) configdict.update(config)
@@ -305,7 +305,8 @@ def acfactory(pytestconfig, tmpdir, request, session_liveconfig, data):
configdict["mvbox_move"] = str(int(move)) configdict["mvbox_move"] = str(int(move))
configdict["sentbox_watch"] = str(int(sentbox)) configdict["sentbox_watch"] = str(int(sentbox))
ac.update_config(configdict) ac.update_config(configdict)
ac.start() if start:
ac.start()
return ac return ac
def get_one_online_account(self, pre_generated_key=True, mvbox=False, move=False): def get_one_online_account(self, pre_generated_key=True, mvbox=False, move=False):

View File

@@ -45,6 +45,7 @@ class ConfigureTracker:
self._smtp_finished = Event() self._smtp_finished = Event()
self._imap_finished = Event() self._imap_finished = Event()
self._ffi_events = [] self._ffi_events = []
self._progress = Queue()
@account_hookimpl @account_hookimpl
def ac_process_ffi_event(self, ffi_event): def ac_process_ffi_event(self, ffi_event):
@@ -53,6 +54,8 @@ class ConfigureTracker:
self._smtp_finished.set() self._smtp_finished.set()
elif ffi_event.name == "DC_EVENT_IMAP_CONNECTED": elif ffi_event.name == "DC_EVENT_IMAP_CONNECTED":
self._imap_finished.set() self._imap_finished.set()
elif ffi_event.name == "DC_EVENT_CONFIGURE_PROGRESS":
self._progress.put(ffi_event.data1)
@account_hookimpl @account_hookimpl
def ac_configure_completed(self, success): def ac_configure_completed(self, success):
@@ -66,6 +69,9 @@ class ConfigureTracker:
""" wait until smtp is configured. """ """ wait until smtp is configured. """
self._imap_finished.wait() self._imap_finished.wait()
def wait_progress(self):
return self._progress.get()
def wait_finish(self): def wait_finish(self):
""" wait until configure is completed. """ wait until configure is completed.

View File

@@ -3,9 +3,10 @@ import pytest
import os import os
import queue import queue
import time import time
from deltachat import const, Account from deltachat import const, Account, capi
from deltachat.message import Message from deltachat.message import Message
from deltachat.hookspec import account_hookimpl from deltachat.hookspec import account_hookimpl
from deltachat.tracker import ConfigureTracker
from datetime import datetime, timedelta from datetime import datetime, timedelta
from conftest import (wait_configuration_progress, from conftest import (wait_configuration_progress,
wait_securejoin_inviter_progress) wait_securejoin_inviter_progress)
@@ -563,10 +564,12 @@ class TestOnlineAccount:
assert msg3_in.is_encrypted() assert msg3_in.is_encrypted()
def test_configure_canceled(self, acfactory): def test_configure_canceled(self, acfactory):
ac1 = acfactory.get_online_configuring_account() ac1 = acfactory.get_online_configuring_account(start=False)
wait_configuration_progress(ac1, 200) with ac1.temp_plugin(ConfigureTracker()) as config_tracker:
ac1.stop_ongoing() capi.lib.dc_configure(ac1._dc_context)
wait_configuration_progress(ac1, 0, 0) config_tracker.wait_progress()
ac1.stop_ongoing()
config_tracker.wait_finish()
def test_export_import_self_keys(self, acfactory, tmpdir): def test_export_import_self_keys(self, acfactory, tmpdir):
ac1, ac2 = acfactory.get_two_online_accounts() ac1, ac2 = acfactory.get_two_online_accounts()