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?


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
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