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.

428<br />

Techniques avancées<br />

QUATRIÈME PARTIE<br />

Mais ces échanges doivent être formalisés par des outils supplémentaires pour faciliter<br />

la gestion du code du projet, et l’accès à ces outils doit être direct pour toute personne<br />

impliquée dans le projet.<br />

Le projet Python est un exemple flagrant de ce besoin : avant la version 2 du langage,<br />

toutes les modifications proposées étaient envoyées à Guido van Rossum par e-mail<br />

sous forme de fichiers diff ou python. Ce dernier acceptait ou refusait l’ajout. Dans<br />

le premier cas, il ajoutait le code dans son CVS personnel pour le diffuser ensuite. La<br />

boîte e-mail de Guido van Rossum était donc le goulot d’étranglement de l’avancée<br />

du projet Python.<br />

À l’instar de Sourceforge, un projet basé sur la programmation dirigée par les tests<br />

peut mettre en place :<br />

Un gestionnaire de version, comme SVN ou CVS, qui permet aux développeurs<br />

de mettre à jour ou récupérer le code centralisé (code repository), et au système de<br />

conserver toutes les versions du code.<br />

Un système de scripts, qui permet de lancer des campagnes de tests et de coverage,<br />

à l’instar des scripts présentés dans ce chapitre.<br />

Des scripts de contrôle qualité, comme PyLint (http://www.logilab.org/projects/<br />

pylint), qui met entre autres en évidence les directives d’importations non utilisées<br />

et PyChecker (http://pychecker.sourceforge.net/), qui effectue un contrôle poussé<br />

sur le code et signale par exemple des objets instanciés mais jamais utilisés, ou des<br />

portions de code qui ne peuvent pas être appelées.<br />

Un automate, comme BuildBot (http://buildbot.sourceforge.net/), qui lance à chaque<br />

modification du code une campagne de tests sur plusieurs environnements<br />

d’exécution, et envoie des e-mails d’avertissement aux développeurs en cas de problème<br />

(codé en Python).<br />

Des outils de gestion de listes de diffusion, comme Mailman (http://www.gnu.org/<br />

software/mailman/) (codé en Python).<br />

Un site permettant de visualiser le code et les modifications, comme le système<br />

Trac (http://www.edgewall.com/trac/) (codé en Python), etc.<br />

Le futur de PyUnit<br />

PyUnit hérite de la lourdeur de son modèle Java. Écrire un simple test pour vérifier<br />

une valeur nécessite beaucoup de boiler-plate code.

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

Saved successfully!

Ooh no, something went wrong!