tests unitaires & persistence d'objets en mémoire [résolu]

tests unitaires & persistence d'objets en mémoire [résolu] - Python - Programmation

Marsh Posté le 08-07-2012 à 08:44:24    

Bonjour à tous. Je travaille avec Python 3.x. Mes tests unitaires sont regroupés en de nombreux fichiers (disons test1.py, test2.py, ...). Je les lance à l'aide d'un script qui exécute d'abord :

Code :
  1. python -m unittest test1.py
  2. python -m unittest test2.py
  3. ...

Il se trouve que test1.py fait appel à une classe possédant un attribut statique et modifie cet attribut. Quand je lance test2.py, je récupère l'attribut tel que l'a modifié test1.py.
 
Juste par curiosité, j'aimerais comprendre ce comportement : jusque là je croyais que (re)lancer python remettait à 0 l'état des objets.
 
Merci de m'aider !

Message cité 1 fois
Message édité par suizokukan le 09-07-2012 à 10:53:10

---------------
rule #1 : trust the python
Reply

Marsh Posté le 08-07-2012 à 08:44:24   

Reply

Marsh Posté le 08-07-2012 à 10:28:31    

suizokukan a écrit :

Bonjour à tous. Je travaille avec Python 3.x. Mes tests unitaires sont regroupés en de nombreux fichiers (disons test1.py, test2.py, ...). Je les lance à l'aide d'un script qui exécute d'abord :

Code :
  1. python -m unittest test1.py
  2. python -m unittest test2.py
  3. ...

Il se trouve que test1.py fait appel à une classe possédant un attribut statique et modifie cet attribut. Quand je lance test2.py, je récupère l'attribut tel que l'a modifié test1.py.
 
Juste par curiosité, j'aimerais comprendre ce comportement : jusque là je croyais que (re)lancer python remettait à 0 l'état des objets.


Va faloir poster une réduction du problème, parce-que tel que décrit là c'est pas possible sauf à avoir test1.py qui fait sa modif à l'import (dégueu) et test2 qui provoque l'import de test1 (également dégueu).
 
Je tiens également à noter qu'avoir un script de lancement est un peu une perte de temps, pourquoi ne pas utiliser unittest2, nose ou py.test?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 09-07-2012 à 10:52:43    

Merci à Masklinn pour sa réponse, très rapide. Je n'arrive pas à reproduire le problème à quelque échelle que ce soit. J'ai donc dû me tromper, désolé pour le flood.
 
Merci pour les références à unittest2, ... que je ne connaissais pas.


---------------
rule #1 : trust the python
Reply

Sujets relatifs:

Leave a Replay

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