[Python] invocare super.setup automaticamente

Piergiuliano Bossi pgbossi a gmail.com
Ven 8 Nov 2013 15:34:39 CET


2013/11/8 Valerio Maggio <valerio.maggio a gmail.com>

>
> A me, sinceramente, un pochino si :D
> Scherzi a parte, credo che in questo caso imho hai "spostato" il problema,
> "specializzando" il setUp della superclasse.
>

Condivido.


> Invece, se non ho capito male, Piergiuliano chiedeva se ci fosse qualche
> altro escamotage per invocare il setUp di una superclasse (Father) durante
> l'esecuzione del test della classe Child.
>

Piu' o meno: aggiungi che il test della classe figlio ha bisogno sia del
setup di papi che del suo setup.


>
> La mia domanda è: durante l'esecuzione del test o durante l'esecuzione del
> setUp della classe Child?
>

"Durante" e' un'espressione pericolosa. In JUnit ad esempio le setup degli
antenati vengono eseguite prima delle setup dei figli, partendo
dall'antenato piu' lontano e scendendo in cascata fino al figlio. Non che
io stia dicendo che e' una buona idea avere gerarchie di test con molti
livelli, neh...


>
> Nel primo caso, se la classe Child non ridefinisce un setUp, naturalmente,
> viene invocato quella della classe Father.
>

Certo.


> Se, invece, lo ridefinisce, non mi vengono in mente soluzioni *senza*
> l'invocazione esplicita di super(Child, self).setUp().
>

Capito.


> Btw, non la vedo una grande limitazione.
>

No, non e' una grande limitazione, fa solo un po' schifo. :)
Ad esempio, se stai convertendo una gerarchia di test da unittest a nose e
vuoi unifromare la convenzione a "setup" anziche' "setUp" devi ricordarti
di cambiare tutte le chiamate nei figli.


> Mmm imho no… nel senso che con la metaclasse agisci a livello di classe e
> non di istanza e il setUp deve essere invocato per *ogni* test dell'istanza
> correntemente in esecuzione.
> Probabilmente mi sbaglio, non c'ho riflettuto a lungo, ma ad intuito
> questo è quello che mi viene in mente.
>
>

Capito, grazie.

Giuliano

-- 
Piergiuliano Bossi
Blog: http://thinkingbox.wordpress.com/
Twitter: http://twitter.com/thinkingbox (English)
Twitter: http://twitter.com/scatolapensante (Italiano)
Google+: https://plus.google.com/u/0/108187981162465525118
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20131108/1781f921/attachment.html>


Maggiori informazioni sulla lista Python