quelques précisions sur Python (PyUnit et modules)

quelques précisions sur Python (PyUnit et modules) - Python - Programmation

Marsh Posté le 28-10-2005 à 19:21:28    

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.

Reply

Marsh Posté le 28-10-2005 à 19:21:28   

Reply

Marsh Posté le 28-10-2005 à 19:31:59    

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
Reply

Marsh Posté le 30-10-2005 à 09:38:04    

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed