Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Machine Learning
avec Scikit-Learn
Voir le programme détaillé
Module « doctest » Python 3.13.2

Classe « DebugRunner »

Informations générales

Héritage

builtins.object
    DocTestRunner
        DebugRunner

Définition

class DebugRunner(DocTestRunner):

help(DebugRunner)

Run doc tests but raise an exception as soon as there is a failure.

If an unexpected exception occurs, an UnexpectedException is raised.
It contains the test, the example, and the original exception:

  >>> runner = DebugRunner(verbose=False)
  >>> test = DocTestParser().get_doctest('>>> raise KeyError\n42',
  ...                                    {}, 'foo', 'foo.py', 0)
  >>> try:
  ...     runner.run(test)
  ... except UnexpectedException as f:
  ...     failure = f

  >>> failure.test is test
  True

  >>> failure.example.want
  '42\n'

  >>> exc_info = failure.exc_info
  >>> raise exc_info[1] # Already has the traceback
  Traceback (most recent call last):
  ...
  KeyError

We wrap the original exception to give the calling application
access to the test and example information.

If the output doesn't match, then a DocTestFailure is raised:

  >>> test = DocTestParser().get_doctest('''
  ...      >>> x = 1
  ...      >>> x
  ...      2
  ...      ''', {}, 'foo', 'foo.py', 0)

  >>> try:
  ...    runner.run(test)
  ... except DocTestFailure as f:
  ...    failure = f

DocTestFailure objects provide access to the test:

  >>> failure.test is test
  True

As well as to the example:

  >>> failure.example.want
  '2\n'

and the actual output:

  >>> failure.got
  '1\n'

If a failure or error occurs, the globals are left intact:

  >>> del test.globs['__builtins__']
  >>> test.globs
  {'x': 1}

  >>> test = DocTestParser().get_doctest('''
  ...      >>> x = 2
  ...      >>> raise KeyError
  ...      ''', {}, 'foo', 'foo.py', 0)

  >>> runner.run(test)
  Traceback (most recent call last):
  ...
  doctest.UnexpectedException: <DocTest foo from foo.py:0 (2 examples)>

  >>> del test.globs['__builtins__']
  >>> test.globs
  {'x': 2}

But the globals are cleared if there is no error:

  >>> test = DocTestParser().get_doctest('''
  ...      >>> x = 2
  ...      ''', {}, 'foo', 'foo.py', 0)

  >>> runner.run(test)
  TestResults(failed=0, attempted=1)

  >>> test.globs
  {}

Constructeur(s)

Signature du constructeur Description
__init__(self, checker=None, verbose=None, optionflags=0)

Liste des attributs statiques

Nom de l'attribut Valeur
DIVIDER**********************************************************************

Liste des opérateurs

Opérateurs hérités de la classe object

__eq__, __ge__, __gt__, __le__, __lt__, __ne__

Liste des méthodes

Toutes les méthodes Méthodes d'instance Méthodes statiques Méthodes dépréciées
Signature de la méthodeDescription
report_failure(self, out, test, example, got)
report_unexpected_exception(self, out, test, example, exc_info)
run(self, test, compileflags=None, out=None, clear_globs=True)

Méthodes héritées de la classe DocTestRunner

__init_subclass__, __subclasshook__, merge, report_start, report_success, summarize

Méthodes héritées de la classe object

__delattr__, __dir__, __format__, __getattribute__, __getstate__, __hash__, __init_subclass__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Vous êtes un professionnel et vous avez besoin d'une formation ? Calcul scientifique
avec Python
Voir le programme détaillé