diff --git a/python/src/deltachat/direct_imap.py b/python/src/deltachat/direct_imap.py index abd802a6e..12d4b4421 100644 --- a/python/src/deltachat/direct_imap.py +++ b/python/src/deltachat/direct_imap.py @@ -95,8 +95,9 @@ def make_direct_imap(account, folder): return imap def print_imap_structure(database): - ac = Account(database) - ac.disable_logging() + print_imap_structure_ac(Account(database)) + +def print_imap_structure_ac(ac): print("================= ACCOUNT", ac.get_config("addr"), "=================") print("----------------- CONFIG: -----------------") print(ac.get_info()) diff --git a/python/src/deltachat/testplugin.py b/python/src/deltachat/testplugin.py index a0d0abf90..91a78f775 100644 --- a/python/src/deltachat/testplugin.py +++ b/python/src/deltachat/testplugin.py @@ -12,7 +12,7 @@ import tempfile import pytest import requests -from . import Account, const +from . import Account, const, direct_imap from .capi import lib from .events import FFIEventLogger, FFIEventTracker from _pytest._code import Source @@ -379,7 +379,10 @@ def acfactory(pytestconfig, tmpdir, request, session_liveconfig, data): am = AccountMaker() request.addfinalizer(am.finalize) - return am + yield am + if request.node.rep_call.failed: + for ac in am._accounts: + direct_imap.print_imap_structure_ac(ac) class BotProcess: @@ -448,3 +451,15 @@ def lp(): def step(self, msg): print("-" * 5, "step " + msg, "-" * 5) return Printer() + + +@pytest.hookimpl(tryfirst=True, hookwrapper=True) +def pytest_runtest_makereport(item, call): + # execute all other hooks to obtain the report object + outcome = yield + rep = outcome.get_result() + + # set a report attribute for each phase of a call, which can + # be "setup", "call", "teardown" + + setattr(item, "rep_" + rep.when, rep)