On Wed, 26 Nov 2008 17:44:55 +0100, "Giovanni Marco Dall'Olio" <[EMAIL PROTECTED]> wrote: > Ciao a tutti, > e' da un po' di tempo che utilizzo doctest, e sono felice :). > > Lo trovo molto comodo per scrivere funzioni che calcolano statistiche > e parsano particolari formati di files. > > Quello che non capisco ancora e' come utilizzarlo per testare funzioni > che prendano in input il nome (path) di un file, e lo aprano.
Tu sei sicuro che una docstring nella quale hai buttato dentro tutto il codice boilerplate per fargli aprire un file temporaneo abbia ancora una qualche utilità come docstring? È una mia idea personale, ma le doctest a me sembrano innanzitutto "doc", e solo come cosa secondaria e pythonesca "test". In particolar modo, è più un test della documentazione stessa che della funzione. Ma questo può ovviamente essere stiracchiato un pochino, e quindi il test, come effetto collaterale, testa che la funzione non cominci a sbagliare. Stiracchiando stiracchiando però aggiungi "documentazione" utile ai fini del test e non ai fini della documentazione, fino al punto che non è più documentazione in lingua umana, ma codice Python che descrive codice Python. È sempre una mia opinione personale, ma mi sembra che le doctest non vogliano essere questo, al punto che non offrono nessuna facility di costruzione di "test suite". A me sembra che quello che tu stia facendo sia una unit test completa, che ha bisogno di dati di appoggio ed eventualmente funzioni di setup e cleanup. > Una seconda opzione e' quella di usare tempfile.NamedTemporaryFile. > Il problema e' che e' una opzione un poco brutta esteticamente, che > aggiunge un sacco di istruzioni non necessarie nella documentazione > (incasinandola). Questo è quello che farei io, ma in una test suite. Questo credo sia il punto dove la doctest smette di essere "bella" (documentazione che come effetto collaterale si auto-testa) e diventa "brutta" (codice di test scritto dove sarebbe dovuta andare la documentazione). Puoi avere tutti e due, unittest e doctest non sono esclusive. Penso che le doctest siano una bella abitudine: fossi in te sceglierei pragmaticamente "il meglio dei due mondi" :) -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python