gawel.org testé et approuvé
Posté le
07/06/2007
sous
python
Comme vous le savez peut-être, les données de ce site sont entièrement stockées dans un svn. Perso, éditer des documents dans un éditeur web, ça me saoul.
Bon, ça, c'était bien, mais j'y ai trouvé un autre avantage. En suivant les diverses conférences sur les tests unitaire aux JFP je me suis dis: "Hey, t'es con, tu pourrais tester tout ton site !"
En effet, il m'as suffit d'écrire ce petit bout de code:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import doctest
import unittest
import os
import sys
import glob
import zope.component
import zope.interface
flags = (doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE |
doctest.REPORT_ONLY_FIRST_FAILURE)
exts = ['.rst','.txt']
def test_suite(args=[]):
suite = []
dirname = os.path.dirname(__file__) or '.'
for root, dirs, files in os.walk(dirname):
if '/.' in root:
continue
for filename in files:
f,ext = os.path.splitext(filename)
if ext in exts:
path = os.path.join(root, filename)
if not os.path.isfile(path):
continue
locales = dict(template_dir=root)
suite.append(doctest.DocFileTest(path,
optionflags=flags,
globs=dict(globals(),**locales)))
return unittest.TestSuite(suite)
if __name__ == '__main__':
sys.argv[0] = __file__ = 'tests.py'
unittest.main(defaultTest='test_suite')
Un peu gruik, je l'avoue. Mais ça me permet de tester l'ensemble des exemples écrit en doctest sur ce site. Ceci implique que tout les bouts de code que vous trouverez ici seront 100% valide et à jour:
gawel@cecilia:~/svn/rst% python tests.py ......................................... ---------------------------------------------------------------------- Ran 41 tests in 0.717s OK
Elle est pas belle la vie ? Même les annonces des AFPyro vont être testées !