[Python] [TDD] Mock di un decoratore

Karim lemieliste a gmail.com
Mer 7 Ago 2019 08:08:59 CEST


Salve lista, stavo per scrivere su telegram, ma poi mi sono detto, naah...
ed eccomi qui

Sto cercando di capire come posso mocckare un decoratore di una view, in
particolare devo decorare un metodo di una view in django

class MyNiceClassView:

    @decorator_to_mock
    def post(...):

Ora, io devo testare la mia post, soltanto che il mio decoratore fa alcuni
test che vorrei semplicemente evitare. Dato che python carica i moduli solo
una volta, una volta che io faccio:

my_view = MyNiceClassView.as_view()

la `my_view` ora e' gia' wrappata dal decoratore.

Cercando su stack overflow, una soluzione suggerita e' quella di

1) importarsi il modulo
        from app import modulo
2) monkey patchare il decorator con un decorator scemo nel modulo importato
      modulo.decoratore = decoratore_scemo
3) importarsi la view da testare.
      from app.modulo import ViewDaTestare
4) testare la view

Ora, questo processo funziona, se non fai nessuna patch e/o non carichi
nulla prima della monkey patch. Inoltre se il decorator e' gia' caricato da
altri test tutto va a farsi benedire perche' python importa solamente una
volta.

Avete dei suggerimenti su come fare una bella e pulita mocckata del
decorator?

Ciao


-- 
Karim N. Gorjux
-------------- parte successiva --------------
Un allegato HTML รจ stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20190807/6ca4f8f5/attachment.html>


Maggiori informazioni sulla lista Python