tl.testing

Software screenshot:
tl.testing
Dettagli del software:
Versione: 0.5
Data di caricamento: 15 Apr 15
Sviluppatore: Thomas Lotze
Licenza: Libero
Popolarità: 5

Rating: nan/5 (Total Votes: 0)

tl.testing offre varie utility che possono essere utilizzate durante la scrittura di test. & Nbsp; E 'compatibile con le versioni 2.6 e 2.7 di Python.
sandbox di directory e file
Durante il test di codice che modifica le directory ei file, è utile essere in grado di creare e controllare un albero campione di directory e file facilmente. Il modulo tl.testing.fs fornisce supporto per la creazione di un albero da una descrizione testuale, elencandolo nello stesso formato e pulire dopo stessa.
In un test di doc, questi impianti potrebbero essere utilizzati come questo per creare ed elencare una directory, un file e un link simbolico:
>>> da tl.testing.fs new_sandbox importazione, ls
>>> New_sandbox ("" ​​"
... D foo
... Foo f / bar asdf
... L baz -> foo / bar
... "" ")
>>> ls ()
l baz -> foo / bar
d foo
f foo / bar asdf
Vedere il file fs.txt trovata con il codice sorgente per ulteriori informazioni, tra cui come impostare e abbattere i test utilizzando sandbox del file-system.
Installazione script richiamabili
Alcune funzionalità si potrebbe voler testare fa uso di programmi esterni, come un cercapersone o un editor di testo. Il modulo tl.testing.script fornisce utilità che installano semplici script finte in luoghi dove il codice da sperimentare trovarli. Prendono una stringa di codice Python e creare uno script wrapper che imposta il percorso di Python che corrisponda a quello del test e viene eseguito il codice.
Così uno script tale finto potrebbe essere utilizzato in un test doc:
>>> Dall'importazione tl.testing.script installare
>>> Script_path = installare ("print 'Un semplice script.'")
>>> (Script_path) .read aperto print ()
#! ...

import sys
sys.path [:] = [...]

print 'Un semplice script.'
>>> Sottoprocesso import
>>> Sub = subprocess.Popen (script_path, shell = True, stdout = subprocess.PIPE)
>>> Stdout, stderr = sub.communicate ()
>>> Stdout print
Un semplice script.
Vedere il file script.txt trovata con il codice sorgente per ulteriori possibilità come installare e accedere gli script finti e come abbattere test utilizzando script finto.
Doc-testare il contenuto grafico delle superfici cairo
Mentre è straight-forward per confrontare il contenuto di due superfici cairo in codice Python, la gestione della grafica è al di là test doc. Tuttavia, il pacchetto Manuel può essere utilizzato per estrarre i test più generali da un documento di testo, consentendo di mescolarli con prove doc in modo naturale.
Il modulo tl.testing.cairo fornisce una fabbrica suite di test che utilizza manuel per eseguire i test grafici formulate come figure di testo ristrutturato. La voce di tale figura dovrebbe essere un'espressione Python letterale cui valore è una superficie cairo, e la sua immagine viene usata come l'aspettativa di prova.
Così una superficie può essere paragonato a un'immagine previsto un test doc:
>>> Cairo import
>>> Da pkg_resources import resource_filename
>>> Image = resource_filename ('tl.testing', 'testimages / correct.png')
.. Figure :: tl / testing / testimages / correct.png
& Nbsp; `` cairo.ImageSurface.create_from_png (immagine) ``
Vedere il file cairo.txt trovata con il codice sorgente per ulteriori consigli e la documentazione della uscita di test possibile.
Lavorare con fili in codice di test
La classe TestCase norma non raccoglie gli errori e fallimenti che si sono verificati in altri thread diversi da quello principale. Il modulo tl.testing.thread offre classi di thread e una classe ThreadAwareTestCase per consentire proprio questo, così come alcune altre comodità per le prove che si occupano di discussioni: prevenire le eccezioni non gestite attesi in discussioni sia stampato con l'uscita di test, le discussioni di reporting lasciati alle spalle da un test, l'esecuzione di codice in un thread daemon, unendo le discussioni e contando le discussioni iniziate durante la fase di esecuzione della prova:
Tempo >>> import
>>> Tl.testing.thread import
>>> Class SampleTest (tl.testing.thread.ThreadAwareTestCase):
...
... Def test_error_in_thread_should_be_reported (self):
... Con tl.testing.thread.ThreadJoiner (1):
... Self.run_in_thread (lambda: 1/0)
...
... Def test_active_count_should_count_only_new_threads (auto):
... Con tl.testing.thread.ThreadJoiner (1):
... Self.run_in_thread (lambda: time.sleep (0,1))
... Self.assertEqual (1, self.active_count ())
... Self.assertEqual (0, self.active_count ())
>>> Import unittest
>>> Run (unittest.makeSuite (SampleTest))
================================================== ====================
ERRORE: test_error_in_thread_should_be_reported (__builtin __ SampleTest.)
-------------------------------------------------- --------------------
Traceback (chiamata più recente scorso):
& Nbsp; ...
ZeroDivisionError: divisione intera o modulo per zero
-------------------------------------------------- --------------------
Ran 2 prove in N.NNNs
FAILED (errori = 1)
Vedere il file thread.txt trovato con il codice sorgente per ulteriori dettagli della classe ThreadAwareTestCase.
La costruzione di suite di test che utilizzano manuel
Come manuel fornisce alcune caratteristiche potenti oltre a doctests standard, suite di test Manuel sono impostati in modo leggermente diverso da quelli standard. Il modulo tl.testing.doctest implementa una fabbrica DocFileSuite che può essere utilizzato come quella standard, ma crea una suite di test con Manuel e permette alcune configurazioni aggiuntive relative a Manuel, tra i quali la capacità di interpretare le note che hanno usato per essere fatto utilizzando il deprecato zope.testing.doctest:
>>> Sample_txt = write ('sample.txt', "" "
... [#footnote] _
... >>> X
... 1
...
... .. [#footnote]
... >>> X = 1
... "" ")
>>> Da tl.testing.doctest DocFileSuite import
>>> Run (DocFileSuite (sample_txt, note = TRUE))
-------------------------------------------------- --------------------
Ran 1 test in N.NNNs
OK
>>> Sample_txt = write ('sample.txt', "" "
... .. Code-block :: python
... X = 1
...
... >>> X
... 1
... "" ")
>>> Manuel.codeblock import
>>> Run (DocFileSuite (sample_txt, manuel = manuel.codeblock.Manuel ()))
-------------------------------------------------- --------------------
Ran 1 test in N.NNNs
OK

Requisiti :

  • Python

Programmi simili

filterunit
filterunit

11 May 15

TAU
TAU

20 Feb 15

bdd
bdd

14 Apr 15

noselog
noselog

20 Feb 15

Altri software di sviluppo Thomas Lotze

Ophelia
Ophelia

15 Apr 15

tl.pkg
tl.pkg

15 Apr 15

Commenti a tl.testing

I commenti non trovato
Aggiungi commento
Accendere le immagini!