Re: [Python] pyunit e test con i database

2008-11-11 Thread Fabrizio Mancini
Ciao,
Grazie ad entrambi per i suggerimenti. I doctest li avevo inizialmente
scartati perché mi sembravano "sempliciotti" e difficilmente mantenibili.
L''applicativo di automazione che sto scrivendo si interfaccia su vari
fronti sia con i db che con altri applicativi e con i file system cifs ed
nfs, e deve girare su varie piattaforme quali linux, windows e solaris.
Stavo inizilamente cercando qualche soluzione per i mock con pyunit, ma
adesso che mi hai suggerito nose me lo studio ben benino!
Grazie
Fabrizio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] pyunit e test con i database

2008-11-11 Thread Giovanni Marco Dall'Olio
2008/11/10 Daniele Varrazzo <[EMAIL PROTECTED]>:
> On Mon, 10 Nov 2008 16:54:07 +0100, "Giovanni Marco Dall'Olio"
> <[EMAIL PROTECTED]> wrote:
>> 2008/11/10 Fabrizio Mancini <[EMAIL PROTECTED]>:
>>> Ciao a tutti,
>
>> Non ti saprei dire, ma per una situazione simile io ho intenzione di
>> usare doctest (almeno fino a un certo punto).
>> Se devi scrivere delle classi che verranno utilizzate da altre
>> persone, o hai paura di dimenticarti qualcosa in futuro, le doctest
>> sono molto comode e ti permettono di avere sia degli esempi che
>> faranno capire molto bene al tuo cliente/collaboratori quello che
>> scriverai, che dei test da utilizzare al volo.
>
> Ho paura che i doctest siano un po' semplificati per questo tipo di
> testing. Testando i db, di solito il setup/teardown delle test suite sono
> molto importanti, e non mi sembra sia possibile un gran controllo con i
> doctest.

Penso che dipenda anche da quello che vuoi fare con il database.
Se ti serve per farci girare sopra delle applicazioni, web o no,
effettivamente il doctest puo' essere scomodo.

Se invece usi il database per immagazzinare dati, e.g. risultati di un
esperimento di laboratorio, e sai che verra' interrogato solo tramite
moduli come sqlalchemy, il doctest e' utile perche' ti permette di far
capire cosa rappresenta ogni tabella, qual e' la maniera corretta per
accedervi, e cosi' via.

Era forse un po' troppo generica la domanda :)

>
> Secondo me i doctest sono più indicati quando gli oggetti sono del tutto
> autocontenuti, non quando devi testare una frontiera dell'applicativo.
>
> --
> Daniele Varrazzo - Develer S.r.l.
> http://www.develer.com
>



-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] pyunit e test con i database

2008-11-11 Thread Fabrizio Mancini
> Penso che dipenda anche da quello che vuoi fare con il database.
> Se ti serve per farci girare sopra delle applicazioni, web o no,
> effettivamente il doctest puo' essere scomodo.
>
> Se invece usi il database per immagazzinare dati, e.g. risultati di un
> esperimento di laboratorio, e sai che verra' interrogato solo tramite
> moduli come sqlalchemy, il doctest e' utile perche' ti permette di far
> capire cosa rappresenta ogni tabella, qual e' la maniera corretta per
> accedervi, e cosi' via.
>
> Era forse un po' troppo generica la domanda :)


Ciao,
i db in questione sono dei database che vengono usati da dei sistemi di
gestione documentale, in cui ogni schema ha circa 50-60 tabelle, e alcune
tabelle, quelle più grandi, arrivano a contenere fino a 200 milioni di righe
ed alcune query devono mettere in join 3 o 4 tabelle di questa dimensione.
Le tabelle che entrano in gioco comunque sono poche. Il problema che una o
due di queste tabelle variano per ogni schema. Non volendo modificare lo
script per ogni schema, ho messo tutta la configurazione "variabile" in un
file ini che il sw si legge allo startup.
Per accedere al db stavo anche pensando di provare sqlalchemy ma vorrei
prima capire come performa in tale situazione. Per adesso uso solo cx_Oracle
nudo e crudo e non ho problemi.
Quello che vorrei fare è testare la classe che si interfaccia con il db. Il
problema sorge quando la classe cerca di interrogare il db e si aspetta dei
risultati.
I mock mi servivano appunto per fornire un set di questi dati e su questi
eseguire alcune operazioni, come select e update.
In base ai risultati di questa query il sw che sto scrivendo recupera i file
interfacciandosi con vari sistemi di memorizzazione dati.
Fondamentalmente non fa nulla di complicato, ma devo lanciare il parallelo
vari processi per recuperare parrallelamente i vari documenti (e sono
tanti!!!) al fine di velocizzare l'operazione, perché alcuni di questi
sistemi sono tutt'altro che storage veloci!!!
Siccome inizialmente l'avevo scritto di corsa questo pezzettino di software,
lo vorrei riscrivere daccapo e con gli unittest.
Ciao e grazie
Fabrizio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] pyunit e test con i database

2008-11-11 Thread Lawrence Oluyede
On Tue, Nov 11, 2008 at 9:32 AM, Fabrizio Mancini <[EMAIL PROTECTED]> wrote:
> Stavo inizilamente cercando qualche soluzione per i mock con pyunit, ma
> adesso che mi hai suggerito nose me lo studio ben benino!

L'aspetto di mocking e` piuttosto agnostico rispetto alla libreria che
usi per testare.
Nose e` una buona libreria di testing. Se vuoi scrivere mock di
qualche tipo prima ti consiglio di capire esattamente cosa sono se
gia` non lo sai, vedi


Infine di librerie di Mock ne esistono a iosa che seguono vari
modelli, vedi 

La libreria mock, quella di Michael Foord e` una delle piu` gettonate
ultimamente, ho provato anche pmock.

Dipende dalle esigenze.

-- 
Lawrence, stacktrace.it - oluyede.org - neropercaso.it
"It is difficult to get a man to understand
something when his salary depends on not
understanding it" - Upton Sinclair
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python