Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1600 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  quelques précisions sur Python (PyUnit et modules)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

quelques précisions sur Python (PyUnit et modules)

n°1233818
psychotek
Posté le 28-10-2005 à 19:21:28  profilanswer
 

Bonjour à tous
 
Je développe depuis quelques temps maintenant en python mais je cherche à approfondir mes connaissances. Pourriez-vous m'éclairer sur certains points ?
 
Tout d'abord, comment faire des modules/packages ? (Je ne sais pas quel est le terme le plus adapté). Voila la répartition des fichiers que je souhaite donner à mon appli :

Code :
  1. MonAppli
  2.     -> lib
  3.         -> classe 1
  4.         -> classe 2
  5.         -> classe 3
  6.     -> gui
  7.         -> classe 1
  8.         -> classe 2
  9.         -> classe 3
  10.     -> main
  11.         -> classe 1
  12.         -> classe 2
  13.         -> classe 3


bref vous comprenez l'idée j'imagine. Comment on spécifie ça ? En java, il suffit de répartir les fichiers dans des dossiers et de mettre dans le fichier "package NomDuDossier;" Y a t-il quelque chose de similaire en python ?
 
 
Par ailleurs, je pratique depuis peu les tests unitaires. J'ai compris comment faire des tests unitaires pour une classe, dans un fichier. mais comment faire pour répartir les tests dans des fichiers différents, et les appeler à la suite ?
Par exemple, voici ma classe :

Code :
  1. class Basic:
  2.     def __init__(self, name="without_name" ):
  3.         self.__name = name
  4.     def getName(self):
  5.         return self.__name
  6.     def average(self):
  7.         return 0


et mon fichier de test :

Code :
  1. import unittest
  2. import Basic
  3. class BasicTest(unittest.TestCase):
  4.     def setUp(self):
  5.         self.b = Basic.Basic()
  6.     def testGetName(self):
  7.         self.assertEqual(self.b.getName(), "without_name" )
  8.     def testAverage(self):
  9.         self.assertEqual(self.b.average(), 0)
  10. if __name__ == "__main__":
  11.     unittest.main()


Admettons maintenant que j'aie plusieurs fichiers de ce type. Comment les enchaîner ?
 
Merci beaucoup.

mood
Publicité
Posté le 28-10-2005 à 19:21:28  profilanswer
 

n°1233824
masklinn
í dag viðrar vel til loftárása
Posté le 28-10-2005 à 19:31:59  profilanswer
 

Réponse en vitesse parce que je dois être parti d'ici 5mn:
 
Pour créer un module de base, il suffit de créer un fichier ".py" dans le répertoire de ton fichier appelant et de l'importer (en appelant son nom, "import blah" pour "blah.py" ), par convention les noms de modules sont en minuscules. Le fichier EST le module, et c'est un objet.
 
Il est également possible de créer des hiérarchies de modules plus complexes (avec sous modules et autres, des arbos quoi) depuis Python 1.5, comme indiqué ici au moyen de fichiers __init__.py
 
Pour les tests unitaires, tu devrais grouper tes testcases dans des testsuites comme montré ici, tu n'es pas non plus obligé de créer 40 fichiers de tests unitaires (un par module maximum).
 
Si tu as besoins de choses un peu plus complexes (ou plus avancées, comme la recherche automatisée de testcases) Ned Batchelder a linké quelques possibilités. py.test, entre autre, a quelques points franchement intéressants (son but est de remplacer le module unittest, la pluspart des autres outils se basent sur unittest en vue de l'améliorer/étendre)


Message édité par masklinn le 28-10-2005 à 19:34:13

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1234366
psychotek
Posté le 30-10-2005 à 09:38:04  profilanswer
 

merci pour ces précisions. ces liens vont beaucoup m'aider je pense.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  quelques précisions sur Python (PyUnit et modules)

 

Sujets relatifs
mac os X, perl et modulesPython sur hébergement mutualisé.
[Python] Gestion de processusPython s'utilise de quel façopn
Lien symbolique python[c++/Python] Passer une instance c++ à un script python
Lenteur/blocage suite a l'utilisation de modules CPAN[python, regexp] un truc bete
Utiliser un logiciel grâce à PythonModules et programme principal
Plus de sujets relatifs à : quelques précisions sur Python (PyUnit et modules)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR