mirror of
https://github.com/chatmail/core.git
synced 2026-05-05 22:36:30 +03:00
remove an ancient hack on context-teardown, refine and use more regular API for finalizing online accounts
This commit is contained in:
@@ -50,9 +50,8 @@ class Account(object):
|
|||||||
self._configkeys = self.get_config("sys.config_keys").split()
|
self._configkeys = self.get_config("sys.config_keys").split()
|
||||||
self._imex_completed = threading.Event()
|
self._imex_completed = threading.Event()
|
||||||
|
|
||||||
# XXX this can cause "illegal instructions" at test ends so we omit it for now
|
def __del__(self):
|
||||||
# def __del__(self):
|
self.shutdown()
|
||||||
# self.shutdown()
|
|
||||||
|
|
||||||
def _check_config_key(self, name):
|
def _check_config_key(self, name):
|
||||||
if name not in self._configkeys:
|
if name not in self._configkeys:
|
||||||
@@ -397,7 +396,8 @@ class Account(object):
|
|||||||
def shutdown(self, wait=True):
|
def shutdown(self, wait=True):
|
||||||
""" stop threads and close and remove underlying dc_context and callbacks. """
|
""" stop threads and close and remove underlying dc_context and callbacks. """
|
||||||
if hasattr(self, "_dc_context") and hasattr(self, "_threads"):
|
if hasattr(self, "_dc_context") and hasattr(self, "_threads"):
|
||||||
self.stop_threads(wait=False) # to interrupt idle and tell python threads to stop
|
print("SHUTDOWN", self)
|
||||||
|
self.stop_threads(wait=False)
|
||||||
lib.dc_close(self._dc_context)
|
lib.dc_close(self._dc_context)
|
||||||
self.stop_threads(wait=wait) # to wait for threads
|
self.stop_threads(wait=wait) # to wait for threads
|
||||||
deltachat.clear_context_callback(self._dc_context)
|
deltachat.clear_context_callback(self._dc_context)
|
||||||
|
|||||||
@@ -305,7 +305,6 @@ class Chat(object):
|
|||||||
def get_contacts(self):
|
def get_contacts(self):
|
||||||
""" get all contacts for this chat.
|
""" get all contacts for this chat.
|
||||||
:params: contact object.
|
:params: contact object.
|
||||||
:raises ValueError: if contact could not be added
|
|
||||||
:returns: list of :class:`deltachat.chatting.Contact` objects for this chat
|
:returns: list of :class:`deltachat.chatting.Contact` objects for this chat
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -24,17 +24,6 @@ def pytest_configure(config):
|
|||||||
config.option.liveconfig = cfg
|
config.option.liveconfig = cfg
|
||||||
|
|
||||||
|
|
||||||
@pytest.hookimpl(trylast=True)
|
|
||||||
def pytest_runtest_call(item):
|
|
||||||
# perform early finalization because we otherwise get cloberred
|
|
||||||
# output from concurrent threads printing between execution
|
|
||||||
# of the test function and the teardown phase of that test function
|
|
||||||
if "acfactory" in item.funcargs:
|
|
||||||
print("*"*30, "finalizing", "*"*30)
|
|
||||||
acfactory = item.funcargs["acfactory"]
|
|
||||||
acfactory.finalize()
|
|
||||||
|
|
||||||
|
|
||||||
def pytest_report_header(config, startdir):
|
def pytest_report_header(config, startdir):
|
||||||
summary = []
|
summary = []
|
||||||
|
|
||||||
@@ -184,7 +173,9 @@ def acfactory(pytestconfig, tmpdir, request, session_liveconfig):
|
|||||||
self._finalizers.append(ac.shutdown)
|
self._finalizers.append(ac.shutdown)
|
||||||
return ac
|
return ac
|
||||||
|
|
||||||
return AccountMaker()
|
am = AccountMaker()
|
||||||
|
request.addfinalizer(am.finalize)
|
||||||
|
return am
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
|||||||
Reference in New Issue
Block a user