> Il giorno 7 ago 2019, alle ore 08:08, Karim <lemieli...@gmail.com> ha scritto: > > 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?
Potresti provare prima di eseguire il test a verifica re in sys.modules. Se il tuo modulo non c’è lo importi e poi fai la patch. Altrimenti fai la patch sul modulo importato. Non so se può funzionare ma è la sola cosa che mi viene in mente quando devi alterare moduli già importati. Ciao G > > Ciao > > > -- > Karim N. Gorjux > _______________________________________________ > Python mailing list > Python@lists.python.it > https://lists.python.it/mailman/listinfo/python
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python