[pyar] (unit)testing y pygtk

Andres Riancho andres.riancho en gmail.com
Mar Ago 21 11:21:54 ART 2012


Natalia,

2012/6/19 Andres Riancho <andres.riancho en gmail.com>:
> Natalia,
>
> 2012/6/14 Natalia Bidart <nataliabidart en gmail.com>:
>> 2012/6/14 Andres Riancho <andres.riancho en gmail.com>:
>>> 2012/6/14 Natalia Bidart <nataliabidart en gmail.com>:
>>>> 2012/6/13 Andres Riancho <andres.riancho en gmail.com>:
>>>>> Estimados,
>>>>>
>>>>>    Estoy algo perdido... alguien podria recomendarme como hacer
>>>>> testing [0] de una aplicacion pyGTK? Estuve buscando un rato y lo
>>>>> mejorcito que encuentro es algo llamado guitest [1], que no se
>>>>> mantiene desde 2005 :/ Será que la gente no hace testing de sus
>>>>> ventanas?
>>>>
>>>> Hola Andrés,
>>>>
>>>> yo he estado involucrada en varias applicaciones que tienen UIs en GTK
>>>> y en Qt, y en todas hemos aplicado la misma metodología para
>>>> unittestear ambos toolkits: usar el módulo unittest junto con el test
>>>> runner de twisted (trial).
>>>>
>>>> Notar que usar el corredor de tests de twisted es independiente de si
>>>> tu applicación usa twisted o no, lo clave es que trial se integra
>>>> perfectamente con el main loop de GTK (y de Qt), entonces podés hacer
>>>> cosas en tus tests como levantar la UI, "clickear" en un botón usando
>>>> el método clicked de un GtkButton, y luego hacer asserts sobre el
>>>> callback que estaba conectado al clicked de ese botón.
>>>>
>>>> Te paso los links a los tres proyectos que tienen interfaces en GTK:
>>>>
>>>> http://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntu-sso-client/trunk/files/head:/ubuntu_sso/gtk/
>>>>
>>>> http://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntuone-control-panel/stable-2-0/files/head:/ubuntuone/controlpanel/gui/gtk/
>>>>
>>>> http://bazaar.launchpad.net/~chicharreros/magicicada/trunk/files/head:/magicicada/gui/gtk/
>>>>
>>>> Yo digo que mirando los códigos queda claro qué se puede hacer, pero
>>>> cualquier cosa, preguntá nomás.
>>>
>>> Muy interesante, parece ser lo que ando buscando. Algunas preguntas:
>>>    * Hay algun "hello world" de esto dando vueltas por ahi?
>>
>> No, pero puedo intentar hacerlo... es algo que está muy piola de
>> tener, además me ayudaría para la charla (que hace rato quiero dar y
>> no me organizo para) de "Unittesting GTK (o Qt) UIs".
>> Te aviso por este medio cuando lo tenga armado.
>
> Perfecto! Seguro a muchos nos va a servir un howto/guia sobre esto.

    Llegaste a escribir algun blog post o algo sobre esto? Perdon que moleste :)

>>>    * Cuando estas testeando una window que levanta un dialog, la
>>> manera es con algo similar a FakedConfirmDialog?
>>
>> Sipes, porque sino perdés el "control" del programa cuando le hacés
>> .run() a un GtkDialog.
>
> En caso de que se pueda, lo ideal seria que NO haga falta hacer esto y
> que se puedan usar los dialogs originales, no? Usando trial y lo que
> ya hay armado, es una tarea imposible de alcanzar?
>
>>>    * Estos tests se corren con "nosetests" ?
>>
>> No... el tema es que estos tests dependen 100% del corredor de tests
>> de twisted: trial. Trial es comparable con nose, pero es "otro" test
>> runner.
>> Y lo principal es que trial arranca un reactor de twisted integrado
>> con el mainloop de GTK, por lo cual uno puede levantar cosas de GTK
>> "en el medio" (de manera intercalada, de hecho) de la corrida de
>> tests.
>
> Interesante... parece que guitest (referenciado en el primer email)
> hace eso mismo, levanta un loop de GTK para que puedan correr los
> tests.
>
>> Hasta donde sé, uno no podría arrancar un mainloop de GTK integrado
>> con los corredores de tests usuales (el de unittest mismo, nose,
>> py.test, etc). Entonces (insisto, hasta donde sé), trial es la única
>> alternativa que te permite este tipo de unittests con toolkits como
>> GTK o Qt.
>
> Quizas haciendo un hack en setUp donde se levanta el mainloop o cosas
> de ese estilo. Para proyectos como el mio donde todo se corre desde
> nosetests, agregar trial para correr los tests de UI seria algo
> molesto.
>
>> Natalia.
>> _______________________________________________
>> 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
>
>
>
> --
> Andrés Riancho
> Project Leader at w3af - http://w3af.org/
> Web Application Attack and Audit Framework
> Twitter: @w3af
> GPG: 0x93C344F3



-- 
Andrés Riancho
Project Leader at w3af - http://w3af.org/
Web Application Attack and Audit Framework
Twitter: @w3af
GPG: 0x93C344F3



More information about the pyar mailing list