[pyar] problema con unittest + nose

Juan Carlos juancarlospaco en gmail.com
Mar Mayo 20 17:29:54 ART 2014


2014-05-20 14:47 GMT-03:00 Matias Graña <matias.alejo en gmail.com>:

> Hola;
> tengo un problema corriendo tests que no logro entender. Paso el código,
> creo que es lo más sencillo. Son dos archivos: common.py y tests.py
>
> ----------- common.py -----------
> class Problemita(Exception):
>     def __init__(self):
>         super(Problemita, self).__init__()
>
>     def __str__(self):
>         return 'esto es un problemita'
>
>
> def f():
>     raise Problemita()
>
> ----------- tets.py -----------
> from nose.tools import raises
> import unittest
>
> import common
>
> class CommonTests(unittest.TestCase):
>     def setUp(self):
>         reload(common)
>
>     @raises(common.Problemita)
>     def test_f(self):
>         common.f()
>
>
> Cuando corro los tests yo espero que test_f no falle porque salta una
> excepción. Sin embargo:
>
> $
> nosetests
> E
> ======================================================================
> ERROR: test_f (tests.CommonTests)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/local/lib/python2.7/dist-packages/nose/tools/nontrivial.py",
> line 60, in newfunc
>     func(*arg, **kw)
>   File "...../tests.py", line 13, in test_f
>     common.f()
>   File "...../common.py", line 12, in f
>     raise Problemita()
> Problemita: esto es un problemita
>
> ----------------------------------------------------------------------
> Ran 1 test in 0.003s
>
> FAILED (errors=1)
>
> El test deja de fallar si en lugar de @raises(common.Problemita) pongo
> @raises(Exception). También deja de fallar si no pongo el método setUp() de
> CommonTests.
> No termino de entender por qué ese reload puede estar embromando (y lo
> necesito porque tengo otros tests, que acá no pongo, que hacen mocks
> varios).
>


" nose tests need not be subclasses of unittest.TestCase.  "

" Class-level setup fixtures may be named setup_class, setupClass,
setUpClass, setupAll or setUpAll; teardown fixtures may be named
teardown_class, teardownClass, tearDownClass, teardownAll or tearDownAll. "

http://nose.readthedocs.org/en/latest/writing_tests.html#writing-tests

:)
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140520/67fea1d5/attachment.html>


More information about the pyar mailing list