[pyar] problema con unittest + nose

Mariano Garcia Berrotarán garcia.berrotaran en gmail.com
Mar Mayo 20 17:36:53 ART 2014


Hola!

Esquivando nose.tools podes usar unittest.TestCase.assertRaises, y
quedaria una cosa así:

    def test_f(self):
        self.assertRaises(common.Problemita, common.f)

2014-05-20 13:47 GMT-04: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).
>
>
> Cualquier ayuda es bienvenida. Gracias!
> -- Matías Graña
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar



-- 
Mariano García Berrotarán


More information about the pyar mailing list