[pyar] Testeando decoradores

marrese en gmail.com marrese en gmail.com
Mie Sep 14 13:09:31 ART 2011


Gente,

Hoy me encontre con algo nuevo (como todos los dias) ... un decorador que
tenia que testear (si recien hoy).
Lo pude testear, abajo estan los ejemplos de codigo, pero queria saber si
habia alguna forma mejor de hacerlo (sep ... no confio sea la mejor opcion
dada la velocidad con la que resolvi el problema)

El decorador es este :

def _location_parser(params_index):
>     '''Decorator that translates new location to old solr location
> parameters.'''
>     def inner(fn):
>         def inner_2(*args, **kwargs):
>             # BLA BLA BLA
>             return fn(*args, **kwargs)
>         return inner_2
>     return inner


Un ejemplo de utilizacion seria:

@_location_parser(2)
> def user_search(site_id, um, params, search=True, extra_args=None):



El test, que es lo que me interesa es:

class Test_Search(unittest.TestCase):
>     def test__location_parser_decorator(self):
>         p = params.Params({}, '')
>         p.set('location_id', 3)


>         def test_fn(*args, **kwargs):
>             self.assertEqual(args[0].get('lgcy_country'), '1')
>             self.assertEqual(args[0].get('lgcy_city_id'), '1')


>         fn = search._location_parser(0)(test_fn)
>         fn(p)


En el test, defino la funcion test_fn asi una vez que es llamada puedo hacer
las validaciones que necesito.

Esto esta bien asi ? Es la forma correcta de testear decorators ? Hay alguna
mejor forma?

Bueno gente, gracias de ante mano

-- 
Martín

http://www.kyheo.com.ar
GTalk: marrese en gmail.com
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110914/1713374b/attachment.html>


More information about the pyar mailing list