[Python] invocare super.setup automaticamente

Marco Beri marcoberi a gmail.com
Ven 8 Nov 2013 07:52:22 CET


2013/11/8 Piergiuliano Bossi <pgbossi a gmail.com>

> Mi sembra di capire che in Python sia con unittest che con nose non ci sia
> un modo builtin per far si' che, in una gerarchia di test, la setup della
> superclasse venga invocata automaticamente eseguendo un test della
> sottoclasse. Quello che vedo e' che di solito il primo step della setup
> della sottoclasse e' invocare la setup della superclasse (yak!).
>
> Prima domanda: confermate?
>

Sì, questo è il comportamento standard di Python.


> Seconda domanda: vi rassegnate o c'e' qualche escamotage?
>

Ti fa schifo così?

class Father(object):
    def setUp(self):
        print "Padre"
        self.childrenSetUp()

class Children(Father):
    def childrenSetUp(self):
        print "Figlio"

x = Children()
x.setUp()


Se esegui questo codice ottieni:

Padre
Figlio

Ovviamente se non hai sempre childrenSetup, devi trappare l'errore in
Father.setUp.

Altrimenti puoi giocare con le metaclassi, ma per questo ti risponderà
qualcuno più bravo di me :-)

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20131108/543f1dab/attachment.html>


Maggiori informazioni sulla lista Python