On Sat, Sep 24 2016, Karim wrote: >2016-09-22 16:55 GMT+10:00 Karim <lemieli...@gmail.com>: > >> Salve lista, voglio creare un sistema per testare delle funzioni che fanno >> delle chiamate ad un server api. >> >> >Mi rispondo da solo. > >Sto creando un sistema di classi che tramite una fixture json e' possibile >simulare gli endpoints creando la situazione che si vuole emulare.
Ho avuto la stessa necessità ed sono arrivato a due implementazioni differenti. Entrambe usano la, secondo il mio modesto parere, ottima `responses` poiché usavo `requestes`. Nel primo caso ho cercato di emulare le risposte del server ricreando, in piccolo e approssimativamente, il servizio web. Trovo che questa soluzione sia la più macchinosa e flessibile. Il problema maggiore è che l'affidabilità dei test è tanto maggiore, quanto è fedele la tua implementazione al servizio. La seconda soluzione è esattamente la stessa alla quale sei arrivato tu. Mi sono creato un "database" con le fixture e di volta in volta andavo a pescare quella necessarie. Questa soluzione è piuttosto potente ma presenta delle limitazioni. Ne cito due, una dipendente da `responses` e l'altra indipendente dalla libreria che utilizzi. La prima è che `responses` non fà match né sugli header, né sul body. Questo è un peccato perché per esempio per testare l'autenticazione era necessario crearsi un secondo mock. La seconda limitazione è che le richieste devono essere idempotenti, ed questa sembrava essere piuttosto noiosa. Immagino che una possibile sia creare un qualcosa di ibrido. Ciao Marco _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python