On Thu, Aug 8, 2019 at 12:52 AM Giovanni Porcari < giovanni.porc...@softwell.it> wrote:
> ... > 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. > Grazie Giovanni per la risposta. Ho provato a fare un po' di prove per patchare il decoratore ed e' abbastanza frustrante. Questa e' una soluzione molto semplice. from path_dove_si_trova_il_modulo import modulo as my_modulo @patch("path_dove_si_trova_il_decoratore", lambda f:f) def test_che_bypassa_il_decoratore(self): reload(my_modulo) # qui aggiungo altri eventuali patch che stanno nel contesto di "my_modulo" # a questo punto posso usare il modulo e fare i test patch.stopall() reload(my_modulo) Non e' proprio pythonic, ma funziona, il problema e' che ti limita di parecchio ad usare il decoratore, in quanto il reload del modulo avviene nel test. Ho provato a spostare in setUp o ad usare una funzione _privata che esegue il test, ma ho dovuto smettere perche' ci perdevo troppo tempo. Ciao e grazie ancora. -- Karim N. Gorjux
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python