Changeset 112:aa4492e1f366

Show
Ignore:
Timestamp:
06/08/07 11:04:36 (18 months ago)
Author:
Tarek Ziad?? <tarek@…>
Message:

fixed apis

Files:
5 added
2 removed
13 modified

Legend:

Unmodified
Added
Removed
  • JFP/slides.html

    r105 r112  
    355355<li>Expliquer comment les tests fonctionnent en Python</li> 
    356356<li>Sensibiliser les développeurs au <strong>DDD</strong></li> 
    357 <li>Expliquer pourquoi le <strong>reST</strong> et les <strong>doctests</strong> c'est merveilleux</li> 
     357<li>Expliquer pourquoi les <strong>doctests</strong> c'est merveilleux</li> 
    358358</ul> 
    359359<p><img alt="important" src="media/important.png" /> En un mot: comment développer <cite>agile</cite> en Python</p> 
     
    374374<li><strong>Quelques définitions</strong> <img alt="smile" src="media/smile.png" /></li> 
    375375<li><cite>Partie 1: le TDD avec Python</cite></li> 
    376 <li><cite>Partie 2: le reST</cite> A ZAPPER</li> 
    377 <li><cite>Part 3: les doctests</cite></li> 
    378 <li><cite>Part 4: le DDD</cite></li> 
     376<li><cite>Part 2: les doctests</cite></li> 
     377<li><cite>Part 3: le DDD</cite></li> 
    379378</ul> 
    380379</div> 
     
    406405<ul class="simple"> 
    407406<li>coder (-&gt; TDD)</li> 
    408 <li>faire de la documentation (-&gt;DDD)</li> 
     407<li>faire de la documentation (-&gt; DDD)</li> 
    409408<li>passer la tondeuse</li> 
    410409<li>etc.</li> 
     
    412411</div> 
    413412<div class="slide" id="id6"> 
     413<h1>Quelques définitions</h1> 
     414<p>TDD == Test-Driven Development == Développement Dirigé par les Tests</p> 
     415</div> 
     416<div class="slide" id="id7"> 
    414417<h1>Le plan</h1> 
    415418<ul class="simple"> 
    416419<li><cite>Quelques définitions</cite></li> 
    417420<li><strong>Partie 1: le TDD avec Python</strong> <img alt="smile" src="media/smile.png" /></li> 
    418 <li><cite>Partie 2: le reST</cite></li> 
    419 <li><cite>Part 3: les doctests</cite></li> 
    420 <li><cite>Part 4: le DDD</cite></li> 
     421<li><cite>Part 2: les doctests</cite></li> 
     422<li><cite>Part 3: le DDD</cite></li> 
    421423</ul> 
    422424</div> 
     
    436438</ul> 
    437439</div> 
    438 <div class="slide" id="id7"> 
     440<div class="slide" id="id8"> 
    439441<h1>Les principes du TDD</h1> 
    440442<p>Exemple:</p> 
     
    454456</pre> 
    455457</div> 
    456 <div class="slide" id="id8"> 
     458<div class="slide" id="id9"> 
    457459<h1>Les principes du TDD</h1> 
    458460<p>Chaque test concerne un aspect du code.</p> 
     
    470472</pre> 
    471473</div> 
    472 <div class="slide" id="id9"> 
     474<div class="slide" id="id10"> 
    473475<h1>Les principes du TDD</h1> 
    474476<p>Ca plante, changeons la fonction:</p> 
     
    485487</pre> 
    486488</div> 
    487 <div class="slide" id="id10"> 
     489<div class="slide" id="id11"> 
    488490<h1>Les principes du TDD</h1> 
    489491<ul class="simple"> 
     
    494496<p><em>Je change la fonction, je revalide les tests</em></p> 
    495497</div> 
    496 <div class="slide" id="id11"> 
     498<div class="slide" id="id12"> 
    497499<h1>Les principes du TDD</h1> 
    498500<p>Encore plus fort: le test est écrit <cite>avant</cite> le code:</p> 
     
    509511</pre> 
    510512</div> 
    511 <div class="slide" id="id12"> 
     513<div class="slide" id="id13"> 
    512514<h1>Les principes du TDD</h1> 
    513515<p>Le code à présent:</p> 
     
    524526<p>-&gt; Bien souvent ils le sont en même temps ou juste aprÚs</p> 
    525527</div> 
    526 <div class="slide" id="id13"> 
     528<div class="slide" id="id14"> 
    527529<h1>Les principes du TDD</h1> 
    528530<p>Le TDD offre:</p> 
     
    537539</ul> 
    538540</div> 
    539 <div class="slide" id="id14"> 
     541<div class="slide" id="id15"> 
    540542<h1>Les principes du TDD</h1> 
    541543<p>Jean-Charles dit:</p> 
     
    547549<em>&quot;If it's not tested, it's broken&quot;</em></blockquote> 
    548550</div> 
    549 <div class="slide" id="id15"> 
     551<div class="slide" id="id16"> 
    550552<h1>Les principes du TDD</h1> 
    551553<p>Bruce a raison.</p> 
     
    558560</ul> 
    559561</div> 
    560 <div class="slide" id="id16"> 
     562<div class="slide" id="id17"> 
    561563<h1>Partie 1</h1> 
    562564<p><strong>Le TDD avec Python</strong></p> 
     
    575577<p><img alt="important" src="media/important.png" /> Il existe plein d'autres outils tiers de tests</p> 
    576578</div> 
    577 <div class="slide" id="id17"> 
     579<div class="slide" id="id18"> 
    578580<h1>Comment écrire des tests</h1> 
    579581<p><cite>unittest</cite> fourni des outils pour l'écriture des tests:</p> 
    580582<ul class="simple"> 
    581 <li>une classe <cite>TestCase</cite>, pour les assertions et les <cite>test fixture</cite>;</li> 
     583<li>une classe <cite>TestCase</cite>, pour les assertions et les <cite>test fixture</cite> 
     584(environnement pour le test);</li> 
    582585<li>une classe <cite>TestSuite</cite>, pour créér des séquences de tests;</li> 
    583586<li>quelques fonctions pour lancer des <em>test campaign</em>.</li> 
    584587</ul> 
    585588</div> 
    586 <div class="slide" id="id18"> 
     589<div class="slide" id="id19"> 
    587590<h1>Comment écrire des tests</h1> 
    588591<p><cite>TestCase</cite> fourni:</p> 
     
    602605</ul> 
    603606</div> 
    604 <div class="slide" id="id19"> 
     607<div class="slide" id="id20"> 
    605608<h1>Comment écrire des tests</h1> 
    606609<p>Ecrire une suite de tests == dériver de <cite>TestCase</cite>:</p> 
     
    618621<p>Un test == une méthode préfixée de <cite>test</cite></p> 
    619622</div> 
    620 <div class="slide" id="id20"> 
     623<div class="slide" id="id21"> 
    621624<h1>Comment écrire des tests</h1> 
    622625<p>Les tests peuvent être:</p> 
     
    627630</ul> 
    628631</div> 
    629 <div class="slide" id="id21"> 
     632<div class="slide" id="id22"> 
    630633<h1>Comment écrire des tests</h1> 
    631634<p>Exemple de module:</p> 
     
    651654</pre> 
    652655</div> 
    653 <div class="slide" id="id22"> 
     656<div class="slide" id="id23"> 
    654657<h1>Comment écrire des tests</h1> 
    655658<p>Lancement des tests:</p> 
     
    663666</pre> 
    664667</div> 
    665 <div class="slide" id="id23"> 
     668<div class="slide" id="id24"> 
    666669<h1>Comment écrire des tests</h1> 
    667670<p>Lancement des tests, avec une erreur:</p> 
     
    683686</pre> 
    684687</div> 
    685 <div class="slide" id="id24"> 
    686 <h1>Comment écrire des tests</h1> 
    687 <div align="center" class="figure"> 
    688 <img alt="&quot;TDD with Python rocks&quot; -- Magnum" src="media/magnum.jpg" style="width: 400px; height: 300px;" /> 
    689 <p class="caption">&quot;Doing TDD with Python is so cool !&quot; -- Magnum</p> 
    690 </div> 
    691 </div> 
    692688<div class="slide" id="id25"> 
    693689<h1>Partie 1</h1> 
     
    696692-&gt; Comment organiser les tests dans un projet Python</blockquote> 
    697693</div> 
    698 <div class="slide" id="the-plan"> 
    699 <h1>The plan</h1> 
    700 <ul class="simple"> 
    701 <li><cite>A few definitions</cite></li> 
    702 <li><cite>Part 1: doing TDD in Python</cite></li> 
    703 <li><strong>Part 2: writing documents in reST</strong></li> 
    704 <li><cite>Part 3: writing doctests</cite></li> 
    705 <li><cite>Part 4: doing DDD in Python</cite></li> 
    706 </ul> 
    707 </div> 
    708 <div class="slide" id="part-2"> 
    709 <h1>Part 2</h1> 
    710 <p>Writing documents in reST</p> 
    711 <ul class="simple"> 
    712 <li><strong>What is reST ?</strong></li> 
    713 <li><cite>reST syntax overview</cite></li> 
    714 <li><cite>reST tools</cite></li> 
    715 </ul> 
    716 </div> 
    717 <div class="slide" id="what-is-rest"> 
    718 <h1>What is reST ?</h1> 
    719 <p>reSTructuredText (say reSt to be hype) is:</p> 
    720 <ul class="simple"> 
    721 <li>a plaintext markup syntax and parser system</li> 
    722 <li>easy to read as-is, yet powerful</li> 
    723 <li>the Pythonistas laTeX</li> 
    724 <li>see <a class="reference" href="http://docutils.sf.net">http://docutils.sf.net</a></li> 
    725 </ul> 
    726 </div> 
    727694<div class="slide" id="id26"> 
    728 <h1>What is reST ?</h1> 
    729 <p>Example:</p> 
    730 <pre class="literal-block"> 
    731 ================== 
    732 I am the reST file 
    733 ================== 
    734  
    735 I am the first section 
    736 ====================== 
    737  
    738 I am the content of the first section. 
    739 I have things to say. 
    740  
    741 I am the second section 
    742 ======================= 
    743  
    744 I am, what I am, what I aammmm... 
    745 </pre> 
     695<h1>Partie 1</h1> 
     696<p>Sans les tests:</p> 
     697<div align="center" class="figure"> 
     698<img alt="media/sleeping.jpg" src="media/sleeping.jpg" style="width: 300px; height: 300px;" /> 
     699</div> 
    746700</div> 
    747701<div class="slide" id="id27"> 
    748 <h1>What is reST ?</h1> 
    749 <p>Several remarks:</p> 
    750 <ul class="simple"> 
    751 <li>the reST syntax doesn't obfuscate the text</li> 
    752 <li>punctuation signs are used to underline section titles</li> 
    753 </ul> 
     702<h1>Partie 1</h1> 
     703<p>Avec les tests:</p> 
     704<div align="center" class="figure"> 
     705<img alt="media/happy_1.jpg" src="media/happy_1.jpg" style="width: 300px; height: 300px;" /> 
     706</div> 
    754707</div> 
    755708<div class="slide" id="id28"> 
    756 <h1>Part 2</h1> 
    757 <p>Writing documents in reST</p> 
    758 <ul class="simple"> 
    759 <li><cite>What is reST ?</cite></li> 
    760 <li><strong>reST syntax overview</strong></li> 
    761 <li><cite>reST tools</cite></li> 
    762 </ul> 
    763 </div> 
    764 <div class="slide" id="rest-syntax-overview"> 
    765 <h1>reST syntax overview</h1> 
    766 <ul class="simple"> 
    767 <li>punctuation signs to underline sections</li> 
    768 <li>text enhancements<ul> 
    769 <li><tt class="docutils literal"><span class="pre">*emphasis*</span></tt></li> 
    770 <li><tt class="docutils literal"><span class="pre">**strong</span> <span class="pre">emphasis**</span></tt></li> 
    771 <li><tt class="docutils literal"><span class="pre">`interpreted</span> <span class="pre">text`</span></tt></li> 
    772 <li><tt class="docutils literal"><span class="pre">``inline</span> <span class="pre">literal</span> <span class="pre">text``</span></tt></li> 
    773 </ul> 
    774 </li> 
    775 </ul> 
     709<h1>Partie 1</h1> 
     710<p>Avec les tests:</p> 
     711<div align="center" class="figure"> 
     712<img alt="media/happy_2.gif" src="media/happy_2.gif" style="width: 200px; height: 300px;" /> 
     713</div> 
    776714</div> 
    777715<div class="slide" id="id29"> 
    778 <h1>reST syntax overview</h1> 
    779 <ul class="simple"> 
    780 <li>bullet list: use +, * or -</li> 
    781 <li>enumerated list: use n. (1., 2., etc.) or #. (automatic)</li> 
    782 </ul> 
     716<h1>Le plan</h1> 
     717<ul class="simple"> 
     718<li><cite>Quelques définitions</cite></li> 
     719<li><cite>Partie 1: le TDD avec Python</cite></li> 
     720<li><strong>Partie 2: les doctests</strong> <img alt="smile" src="media/smile.png" /></li> 
     721<li><cite>Partie 3: le DDD</cite></li> 
     722</ul> 
     723</div> 
     724<div class="slide" id="partie-2"> 
     725<h1>Partie 2</h1> 
     726<p>Les <cite>doctests</cite></p> 
     727<ul class="simple"> 
     728<li>basés sur le principe du <cite>literate programming</cite> (KNUTH)</li> 
     729<li>utilise le prompt Python</li> 
     730</ul> 
     731</div> 
     732<div class="slide" id="les-doctests"> 
     733<h1>Les doctests</h1> 
     734<p>Exemple de doctest <cite>inline</cite>:</p> 
     735<pre class="literal-block"> 
     736def somme(a, b): 
     737    &quot;&quot;&quot; calcul la somme 
     738 
     739    &gt;&gt;&gt; somme(1, 3) 
     740    4 
     741    &gt;&gt;&gt; somme(2, 2) 
     742    4 
     743    &quot;&quot;&quot; 
     744    return a + b 
     745</pre> 
    783746</div> 
    784747<div class="slide" id="id30"> 
    785 <h1>Part 2</h1> 
    786 <p>Writing documents in reST</p> 
    787 <ul class="simple"> 
    788 <li><cite>What is reST ?</cite></li> 
    789 <li><cite>reST syntax overview</cite></li> 
    790 <li><strong>reST tools</strong></li> 
    791 </ul> 
    792 </div> 
    793 <div class="slide" id="rest-tools"> 
    794 <h1>reST tools</h1> 
    795 <p>XXX</p> 
     748<h1>Les doctests</h1> 
     749<p><img alt="smile" src="media/smile.png" /> Les exemples sont directement disponibles</p> 
     750<p><img alt="sad" src="media/sad.png" /> Le code devient dur à lire</p> 
    796751</div> 
    797752<div class="slide" id="id31"> 
    798 <h1>Part 2</h1> 
    799 <p>Writing documents in reST</p> 
    800 <ul class="simple"> 
    801 <li><cite>What is reST ?</cite></li> 
    802 <li><cite>reST syntax overview</cite></li> 
    803 <li><cite>reST tools</cite></li> 
    804 </ul> 
    805 <p>reST can be:</p> 
    806 <ul class="simple"> 
    807 <li>used for all documentation needs</li> 
    808 <li>manipulated like code (versioning, etc.)</li> 
    809 <li>easily transformed into various shapes</li> 
    810 </ul> 
    811 <p>Python developers <img alt="love" src="media/love.png" /> reST</p> 
     753<h1>Les doctests</h1> 
     754<p>Solution: séparer les doctests dans un fichier texte</p> 
     755<ul class="simple"> 
     756<li>chaque module de code peut avoir son module de doctest</li> 
     757<li>un script <cite>execute</cite> ces modules de tests</li> 
     758</ul> 
    812759</div> 
    813760<div class="slide" id="id32"> 
    814 <h1>The plan</h1> 
    815 <ul class="simple"> 
    816 <li><cite>A few definitions</cite></li> 
    817 <li><cite>Part 1: doing TDD in Python</cite></li> 
    818 <li><cite>Part 2: writing documents in reST</cite></li> 
    819 <li><strong>Part 3: writing doctests</strong></li> 
    820 <li><cite>Part 4: doing DDD in Python</cite></li> 
    821 </ul> 
    822 </div> 
    823 <div class="slide" id="how-to-organise-tests-in-a-python-project"> 
    824 <h1>How to organise tests in a Python project</h1> 
    825 <p>By the way, how Python code is organized ?</p> 
    826 <ul class="simple"> 
    827 <li>a package == a folder with files</li> 
    828 <li>a module == a file with classes, functions and variables</li> 
    829 </ul> 
    830 <p>Each package comes with</p> 
    831 <ul class="simple"> 
    832 <li>a <cite>doc</cite> subfolder</li> 
    833 <li>a <cite>tests</cite> subfolder &lt;--- let's put our unit tests here <img alt="wink" src="media/wink.png" /></li> 
    834 </ul> 
    835 <p>Following the TDD principles:</p> 
    836 <ul class="simple"> 
    837 <li>one code module &lt;==&gt; one test module</li> 
    838 </ul> 
     761<h1>Les doctests</h1> 
     762<p>Exemple de doctest séparé. Fichier <em>calc.py</em>:</p> 
     763<pre class="literal-block"> 
     764def somme(a, b): 
     765    &quot;&quot;&quot; calcul la somme 
     766    &quot;&quot;&quot; 
     767    return a + b 
     768</pre> 
     769<p>Fichier <em>calc.txt</em>:</p> 
     770<pre class="literal-block"> 
     771&gt;&gt;&gt; from calc import somme 
     772&gt;&gt;&gt; somme(1, 3) 
     7734 
     774&gt;&gt;&gt; somme(2, 2) 
     7754 
     776</pre> 
    839777</div> 
    840778<div class="slide" id="id33"> 
    841 <h1>How to organise tests in a Python project</h1> 
    842 <p>Our division package will look like this:</p> 
    843 <pre class="literal-block"> 
    844 division 
    845    | 
    846    |-- division.py 
    847    | 
    848    |-- tests 
    849    |     | 
    850    |     |-- test_division.py 
    851    | 
    852    |--  doc 
    853          | 
    854          |-- division.txt &lt;-- some cool doc 
    855 </pre> 
    856 </div> 
    857 <div class="slide" id="part-1"> 
    858 <h1>Part 1</h1> 
    859 <p><cite>Doing TDD in Python</cite></p> 
    860 <ul class="simple"> 
    861 <li><cite>The TDD principles</cite></li> 
    862 <li><cite>How to write tests in Python</cite></li> 
    863 <li><cite>How to organise tests in a Python project</cite></li> 
    864 </ul> 
     779<h1>Les doctests</h1> 
     780<p>Un fichier doctest devient un test unitaire grâce au module <cite>doctest</cite>:</p> 
     781<pre class="literal-block"> 
     782import doctest 
     783import unittest 
     784 
     785def test_suite(): 
     786    suite.append(doctest.DocFileTest('calc.txt')) 
     787    return unittest.TestSuite(suite) 
     788 
     789if __name__ == '__main__': 
     790    unittest.main(defaultTest='test_suite') 
     791</pre> 
    865792</div> 
    866793<div class="slide" id="id34"> 
    867 <h1>Part 1</h1> 
    868 <p>Mettre une photo de matrix</p> 
    869 <p>&quot;I now TDD in Python now&quot; -- Neo, The Matrix</p> 
     794<h1>Les doctests</h1> 
     795<p>doctests + tests classiques == campagne de test</p> 
     796</div> 
     797<div class="slide" id="id35"> 
     798<h1>Le plan</h1> 
     799<ul class="simple"> 
     800<li><cite>Quelques définitions</cite></li> 
     801<li><cite>Partie 1: le TDD avec Python</cite></li> 
     802<li><cite>Partie 2: les doctests</cite></li> 
     803<li><strong>Partie 3: le DDD</strong> <img alt="smile" src="media/smile.png" /></li> 
     804</ul> 
     805</div> 
     806<div class="slide" id="partie-3"> 
     807<h1>Partie 3</h1> 
     808<p>Le Document-Driven Development</p> 
     809<p>Principe:</p> 
     810<blockquote> 
     811Les doctests séparés peuvent <cite>aussi</cite> être des documents</blockquote> 
     812</div> 
     813<div class="slide" id="documentation"> 
     814<h1>Documentation</h1> 
     815<p>Chaque doctest == alternance de code et d'explications:</p> 
     816<pre class="literal-block"> 
     817Module calc 
     818 
     819Le module calc contient une fonction pour faire des sommes: 
     820 
     821    &gt;&gt;&gt; from calc import somme 
     822 
     823Cette fonction prends deux paramÚtres: 
     824 
     825    &gt;&gt;&gt; somme(1, 3) 
     826    4 
     827    &gt;&gt;&gt; somme(2, 2) 
     828    4 
     829</pre> 
     830</div> 
     831<div class="slide" id="id36"> 
     832<h1>Documentation</h1> 
     833<p><img alt="smile" src="media/smile.png" /> Promiscuité de la documentation</p> 
     834<p><img alt="smile" src="media/smile.png" /> La documentation évolue en même temps que le code</p> 
     835<p><img alt="smile" src="media/smile.png" /> Le développeur utilise la doc. pour concevoir les tests</p> 
     836<p><img alt="smile" src="media/smile.png" /> La documentation du projet est conçue en partie par ce biais</p> 
     837</div> 
     838<div class="slide" id="id37"> 
     839<h1>Documentation</h1> 
     840<p><img alt="important" src="media/important.png" /> Un doctest doit rester un document: ne pas le noyer dans des 
     841<cite>test fixtures</cite> (mise en place pour les tests)</p> 
     842<p><img alt="important" src="media/important.png" /> Les doctests montrent des exemples <strong>publics</strong> de code</p> 
     843<p><img alt="important" src="media/important.png" /> Les tests unitaires classiques s'occupent du reste</p> 
     844</div> 
     845<div class="slide" id="id38"> 
     846<h1>Documentation</h1> 
     847<p>-&gt; Demo: construction d'un module de calcul</p> 
     848</div> 
     849<div class="slide" id="id39"> 
     850<h1>Documentation</h1> 
     851<p>Pour aller plus loin:</p> 
     852<p>-&gt; utilisation du reSTructuredText dans les documents</p> 
     853</div> 
     854<div class="slide" id="conclusion"> 
     855<h1>Conclusion</h1> 
     856<p>Questions ?</p> 
     857</div> 
     858<div class="slide" id="ressources"> 
     859<h1>Ressources</h1> 
     860<ul class="simple"> 
     861<li><a class="reference" href="http://docs.python.org">http://docs.python.org</a> (doctest et unittest)</li> 
     862<li><a class="reference" href="http://programmation-python.org">http://programmation-python.org</a></li> 
     863</ul> 
     864</div> 
     865<div class="slide" id="id40"> 
     866<h1>Ressources</h1> 
     867<p>Sortie le 16 aout:</p> 
     868<div align="center" class="figure"> 
     869<img alt="media/guide.png" src="media/guide.png" style="width: 200px; height: 300px;" /> 
     870</div> 
    870871</div> 
    871872</div> 
  • JFP/slides.txt

    r105 r112  
    2727- Expliquer comment les tests fonctionnent en Python 
    2828- Sensibiliser les développeurs au **DDD** 
    29 - Expliquer pourquoi le **reST** et les **doctests** c'est merveilleux 
     29- Expliquer pourquoi les **doctests** c'est merveilleux 
    3030 
    3131|important| En un mot: comment développer `agile` en Python 
     
    7676 
    7777- coder (-> TDD) 
    78 - faire de la documentation (->DDD) 
     78- faire de la documentation (-> DDD) 
    7979- passer la tondeuse 
    8080- etc. 
     81 
     82Quelques définitions 
     83==================== 
     84 
     85TDD == Test-Driven Development == Développement Dirigé par les Tests 
    8186 
    8287Le plan 
     
    255260`unittest` fourni des outils pour l'écriture des tests: 
    256261 
    257 - une classe `TestCase`, pour les assertions et les `test fixture`; 
     262- une classe `TestCase`, pour les assertions et les `test fixture` 
     263  (environnement pour le test); 
    258264- une classe `TestSuite`, pour créér des séquences de tests; 
    259265- quelques fonctions pour lancer des *test campaign*. 
     
    359365    FAILED (failures=1) 
    360366 
    361 Comment écrire des tests 
    362 ======================== 
    363  
    364 .. figure:: media/magnum.jpg 
    365    :alt: "TDD with Python rocks" -- Magnum 
     367Partie 1 
     368======== 
     369 
     370Pour aller plus loin: 
     371 
     372    -> Comment organiser les tests dans un projet Python 
     373 
     374 
     375Partie 1 
     376======== 
     377 
     378Sans les tests: 
     379 
     380.. figure:: media/sleeping.jpg 
    366381   :align: center 
    367382   :height: 300 
    368    :width: 400 
    369  
    370    "Doing TDD with Python is so cool !" -- Magnum 
     383   :width: 300 
    371384 
    372385Partie 1 
    373386======== 
    374387 
    375 Pour aller plus loin: 
    376  
    377     -> Comment organiser les tests dans un projet Python 
    378  
    379  
    380 La mi-temps 
    381 =========== 
    382  
    383 XXX mettre un truc drole 
     388Avec les tests: 
     389 
     390.. figure:: media/happy_1.jpg 
     391   :align: center 
     392   :height: 300 
     393   :width: 300 
     394 
     395Partie 1 
     396======== 
     397 
     398Avec les tests: 
     399 
     400.. figure:: media/happy_2.gif 
     401   :align: center 
     402   :height: 300 
     403   :width: 200 
    384404 
    385405Le plan 
     
    388408- `Quelques définitions` 
    389409- `Partie 1: le TDD avec Python` 
    390 - **Part 2: les doctests** |smile| 
    391 - `Part 3: le DDD` 
    392  
    393  
    394 XXXXXXXXX 
    395  
    396 The plan 
    397 ======== 
    398  
    399 - `A few definitions` 
    400 - `Part 1: doing TDD in Python` 
    401 - **Part 2: writing documents in reST** 
    402 - `Part 3: writing doctests` 
    403 - `Part 4: doing DDD in Python` 
    404  
    405 Part 2 
    406 ====== 
    407  
    408 Writing documents in reST 
    409  
    410 - **What is reST ?** 
    411 - `reST syntax overview` 
    412 - `reST tools` 
    413  
    414 What is reST ? 
    415 ============== 
    416  
    417 reSTructuredText (say reSt to be hype) is: 
    418  
    419 - a plaintext markup syntax and parser system 
    420 - easy to read as-is, yet powerful 
    421 - the Pythonistas laTeX 
    422 - see http://docutils.sf.net 
    423  
    424 What is reST ? 
    425 ============== 
    426  
    427 Example:: 
    428  
    429     ================== 
    430     I am the reST file 
    431     ================== 
    432  
    433     I am the first section 
    434     ====================== 
    435  
    436     I am the content of the first section. 
    437     I have things to say. 
    438  
    439     I am the second section 
    440     ======================= 
    441  
    442     I am, what I am, what I aammmm... 
    443  
    444 What is reST ? 
    445 ============== 
    446  
    447 Several remarks: 
    448  
    449 - the reST syntax doesn't obfuscate the text 
    450 - punctuation signs are used to underline section titles 
    451  
    452 Part 2 
    453 ====== 
    454  
    455 Writing documents in reST 
    456  
    457