17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Marqueur Ellipsis<br />

def mon_objet():<br />

"""<br />

>>> mon_objet() #doctest: +ELLIPSIS<br />

<br />

"""<br />

return object()<br />

<strong>Programmation</strong> dirigée par les tests<br />

CHAPITRE 12<br />

Ce marqueur fait partie d’un ensemble de drapeaux présentés ci-dessous.<br />

Environnement et options d’exécution<br />

Pour chaque docstring parcouru, un environnement d’exécution est créé à partir d’une<br />

copie des variables globales du module parcouru, renvoyée par globals(). Cette copie<br />

est abandonnée à la fin du docstring, afin d’éviter tout impact sur les tests suivants.<br />

Il est aussi possible de faire varier le fonctionnement des doctests par le biais<br />

d’options d’exécution, appelées marqueurs. Chaque marqueur peut être ajouté aux<br />

lignes des doctests, pour une action locale, ou passé en paramètre lorsque tous les<br />

tests sont lancés, pour une action globale.<br />

Ajouter un marqueur localement se fait en insérant un commentaire en fin de ligne,<br />

avec le nom du marqueur précédé du signe plus (+).<br />

Les marqueurs globaux quant à eux sont concaténés par des opérateurs OR et forment<br />

le paramètre optionflags de la fonction testmod().<br />

Insertion d’un marqueur<br />

# marqueur local<br />

>>> error() # doctest: +IGNORE_EXCEPTION_DETAIL<br />

# marqueur global<br />

importdoctest<br />

if __name__ == "__main__":<br />

flags = doctest.IGNORE_EXCEPTION_DETAIL<br />

doctest.testmod(optionflags=flags)<br />

Les marqueurs disponibles sont :<br />

DONT_ACCEPT_TRUE_FOR_1 : les versions 2.2 et précédentes de Python affichent 0<br />

et 1 pour le retour d’une fonction booléenne. Le module doctest accepte donc ces<br />

valeurs en lieu et place de True et False pour que la transition vers des versions<br />

plus récentes de l’interpréteur ne se fasse pas brutalement. Cette option, qui ne<br />

peut être utilisée que globalement, permet de forcer un contrôle strict.<br />

DONT_ACCEPT_BLANKLINE : empêche l’utilisation de . S’utilise globalement.<br />

415

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!