[pyar] Decorator en unit tests

Martin Marrese marrese en gmail.com
Vie Mar 11 09:41:48 ART 2016


On Fri, Mar 11, 2016 at 9:33 AM Lucas Liendo <mindmaster en gmail.com> wrote:

> Buenas ! Queria compartir con Uds un fragmento de código que no logro
> hacer correr adecuadamente (no logro darme cuenta donde estoy metiendo la
> pata).
>
> Armé un decorator que quiero utilizar en mis tests. La idea del mismo es
> que solamente ciertos tests se ejecuten si estoy en una plataforma en
> particular,
> por ejemplo, si estoy en Windows entonces ciertos checks que son
> específicos
> para platformas Unix no deberían ejecutarse.
>
> Les paso el decorator en cuestión (la detección de la platforma se debería
> hacer con un platform.system(), sin embargo en el decorator lo he
> hardcodeado para simplificar el ejemplo !) :
>
>
> from unittest import TestCase
> from unittest.case import SkipTest
>
>
> class platform_skip_test(object):
>     def __init__(self, selected_platform):
>         self._selected_platform = selected_platform
>
>     def __call__(self, f):
>         def wrapper(*wrapped_f_args, **wrapped_f_kwargs):
>             return f(*wrapped_f_args, **wrapped_f_kwargs)
>
>         # Si ! Aca deberiamos llamar a platform.system() en vez de 'Linux'.
>         if 'Linux' == self._selected_platform:
>             raise SkipTest()
>
>         return wrapper
>

La validación de la plataforma no deberías hacerla dentro de la función
wrapper ?

Saludos,
Martín
-- 

Martín

+54 911 5112 9448
Skype: kyheo_
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160311/42a2683b/attachment.html>


Más información sobre la lista de distribución pyar