pytest expect fixture plugin, itération 1

By | avril 11, 2019

Expert Python

importation pytest

importation inspecter

importation os.chemin

@pytest.fixation

def attendre(demande):

def do_expect(expr, msg=''):

si ne pas expr:

_log_failure(demande.nœud, msg)

revenir do_expect

def _log_failure(nœud, msg=''):

# obtenir le nom du fichier, la ligne et le contexte

(nom de fichier, ligne, funcname, contextlist) = inspecter.empiler()[[[[2][[[[1:5]

nom de fichier = os.chemin.nom de base(nom de fichier)

le contexte = contextlist[[[[0]

# entrée de format

msg = '% s n' % msg si msg autre ''

entrée = '>% s% s% s:% s n ——–' % (le contexte, msg, nom de fichier, ligne)

# ajouter une entrée

si ne pas hasattr(nœud, '_failed_expect'):

nœud._failed_expect = [[[[]

nœud._failed_expect.ajouter(entrée)

@pytest.marque.tryfirst

def pytest_runtest_makereport(article, appel, __multicall__):

rapport = __multicall__.exécuter()

si (appel.quand == "appel") et rapport.passé et hasattr(article, '_failed_expect'):

rapport.résultat = "échoué"

résumé = 'Echec des attentes:% s' % len(article._failed_expect)

article._failed_expect.ajouter(résumé)

rapport.longrepr = ' n'.joindre(article._failed_expect)

revenir rapport