17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

CHAPITRE 12<br />

Lorsqu’un saut de ligne est renvoyé dans les résultats d’une commande, il ne peut<br />

pas être comparé à un véritable saut de ligne, interprété par l’outil comme la fin<br />

d’une séquence. Une ligne contenant la chaîne permet d’indiquer à<br />

l’outil qu’un saut de ligne est attendu à cet endroit.<br />

Un docstring étant une chaîne de caractères, il est nécessaire de prendre des précautions<br />

lorsque le caractère antislash (« \ ») est utilisé. Pour qu’il soit pris en<br />

compte sans être interprété au moment de la lecture de la chaîne par l’outil, il est<br />

nécessaire de définir la chaîne comme étant de type raw.<br />

Dans l’extrait de code ci-dessous, la première version de docstring provoque une<br />

erreur SyntaxError à cause de l’antislash. La deuxième version utilise une chaîne de<br />

caractères de type raw pour résoudre ce problème.<br />

Gestion des antislash<br />

# docstring de type string<br />

def test():<br />

"""<br />

>>> ligne = 'f\n\nf'<br />

>>><br />

f<br />

<br />

f<br />

"""<br />

pass<br />

[tziade@Tarek tests]$ python test_doctests.py -v<br />

[...]<br />

File "test_doctests.py", line 22, in __main__.test<br />

Failed example:<br />

ligne = 'f<br />

Exception raised:<br />

Traceback (most recent call last):<br />

File "/usr/lib/python2.4/doctest.py", line 1243, in __run<br />

compileflags, 1) in test.globs<br />

File "", line 1<br />

ligne = 'f<br />

^<br />

SyntaxError: EOL while scanning single-quoted string<br />

[...]<br />

# docstring de type raw<br />

def test():<br />

r"""<br />

>>> ligne = 'f\n\nf'<br />

>>> 2<br />

2<br />

"""<br />

413

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

Saved successfully!

Ooh no, something went wrong!