<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 8, 2019 at 12:52 AM Giovanni Porcari <<a href="mailto:giovanni.porcari@softwell.it">giovanni.porcari@softwell.it</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="ltr"></div><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">...</div></div>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. <div><br></div><div>Non so se può funzionare ma è la sola cosa che mi viene in mente quando devi alterare moduli già importati. </div></div></blockquote><div><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Grazie Giovanni per la risposta.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Ho provato a fare un po' di prove per patchare il decoratore ed e' abbastanza frustrante.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Questa e' una soluzione molto semplice.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">from path_dove_si_trova_il_modulo import modulo as my_modulo</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">@patch("path_dove_si_trova_il_decoratore", lambda f:f)</div></div><div><div class="gmail_default" style="font-family:verdana,sans-serif">def test_che_bypassa_il_decoratore(self):</div><div class="gmail_default" style="font-family:verdana,sans-serif">     reload(my_modulo)</div><div class="gmail_default" style="font-family:verdana,sans-serif">     # qui aggiungo altri eventuali patch che stanno nel contesto di "my_modulo"</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">     # a questo punto posso usare il modulo e fare i test</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">     patch.stopall()</div><div class="gmail_default" style="font-family:verdana,sans-serif">     reload(my_modulo) </div><div class="gmail_default" style="font-family:verdana,sans-serif">     </div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">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.</div><div class="gmail_default" style="font-family:verdana,sans-serif">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.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Ciao e grazie ancora.</div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr">Karim N. Gorjux<br></div></div></div>