01:45 <ccomb> \o/
01:45 <ccomb> la bete a répondu
01:54 <ccomb> y a un processeur ARM dans ce machin
02:23 <ogrisel> cool ccomb
02:23 <ogrisel> c'etait quoi le pbm ?
02:30 <gawel> bon dieu, je sais pas fair un generateur :(
02:30 <gawel> comment qu'on fait ?
02:31 <gawel> j'aimerais que ca yield random.choice(liste)
02:34 <ogrisel> bah c'est bien ca
02:35 <gawel> marche pas
02:35 <gawel> j'ai fais autrement, je return (c for c in liste) :/
02:35 <ogrisel> def make_gen(ma_liste): return yield random.choice(ma_liste)
02:35 <gawel> bah marche pas
02:36 <ogrisel> mais ca fait un generateur infini ca
02:36 <gawel> c'est ce que je veux :)
02:36 <gawel> c pour générer des post de test
02:36 <ogrisel> je teste
02:37 <ogrisel> heuh vire le return dans mon code
02:37 <gawel> yes, j'avais bon
02:38 <ogrisel> ah non faut mettre un while True
02:38 <ogrisel> sinon ca genere au'un element et ca s'arrete avec StopIteration
02:39 <ogrisel> def make_random_gen(list_):
02:39 <ogrisel> while True:
02:39 <gawel> oh, je vois
02:39 <ogrisel> yield random.choice(list_)
02:41 <gawel> effectivement
02:41 <gawel> merci
02:42 <gawel> http://cecilia.gawel.org:5000/test-forum/test-batched
02:42 <gawel> ca pete :)
02:43 <yota> yeah
02:43 <ogrisel> qd je change de page ca retourne toujours le meme premier element
02:43 <ogrisel> c'est le topic ?
02:44 <gawel> ah, ouais, exact
02:44 <yota> après va falloir se pencher sur l'ergonomie
02:44 <yota> ben c'est le 1er poste
02:44 <yota> -e
02:44 <yota> je présume
02:44 <gawel> yota: toute remarque est la bienvenu :)
02:44 <yota> ben quand tu penses que tu as une beta
02:44 <yota> pas de soucis
02:44 <yota> enfin alpha
02:44 <gawel> j'ai mi des clicka menu déjà pour les reply
02:45 <gawel> j'utilise ca: http://p.sohei.org/stuff/jquery/clickmenu/demo/demo.html#
02:45 <yota> on le mettra dans notre boite :)
02:45 <yota> (enfin faut ldap)
02:45 <gawel> ca déchire tout
02:46 <gawel> bah ca marche avec repoze.who. no soucis
02:46 <gawel> plugin de 3 ligne et rulez
02:46 <gawel> l'auth externe est prévu :p
02:46 <gawel> marche déjà même
02:47 <ogrisel> gawel: dans l'authentification faudra gerer le cas ou le user se plante de mot de passe :)
02:47 <ogrisel> la ca fait un gros traceback
02:47 <gawel> ouais je vais faire un bousin de mail tout ca
02:47 <gawel> ah ?
02:47 <gawel> ah ouais quand t'as un 401 ?
02:47 <ogrisel> http://cecilia.gawel.org:5000/do_login?login=test&password=test
02:48 <ogrisel> le formulaire GET pour les mots de passe c'est pas terrible au passage
02:48 <gawel> ah mignon :)
02:48 <gawel> haha
02:48 <ogrisel> ca fait des mots de passe dans les logs apache
02:48 <gawel> ouais grave. j'ai fait ca en speed
02:48 <gawel> je fix les deux
02:48 <ogrisel> oki
02:50 <ogrisel> faut ecrire des tests fonctionnels pour toussa bien sur :)
02:50 <gawel> y a :p
02:51 <gawel> https://svn.gawel.org/PyBB/trunk/pybb/tests/functional
02:51 <gawel> ----------------------------------------------------------------------
02:51 <gawel> Ran 10 tests in 1.598s
02:51 <gawel> OK
02:51 <gawel> hihihi
02:53 <gawel> repoze.who catch les 401 et redirige vers le login
02:53 <gawel> *balle*
02:54 <yota> et ton code coverage hein ? :)
02:54 <gawel> ca je sais pas :p
02:55 <gawel> je fais jamais
02:55 <yota> en parlant de ça je lisais de la doc sur le path coverage
02:55 <yota> intéressant
02:55 <yota> gawel: tu utilise nose toi ?
02:55 <gawel> ca dépends
02:55 <gawel> mais de plus en plus ouais
02:56 <yota> alors tu as coverage qui marche direct avec nose
02:56 <gawel> yep je sais
02:56 <gawel> mais ca fais un fichier de 300 lignes :D
02:56 <gawel> flème
02:56 <yota> --with-coverage Enable plugin Coverage: If you have Ned Batchelder's
02:56 <yota> teu teu teu
02:56 <gawel> you have quoi ?
02:57 <yota> hein ?
02:57 <yota> d'ailleurs faut que je mettes a zope.testing moi
02:57 <gawel> pas fini ta phrase :)
02:57 <yota> j'ai raté un bout la
02:57 <yota> ogrisel: pour ton code de coverage, tu as utilisé quoi comme technique ?
02:58 <ogrisel> j'utilise le model trace de la lib standard
02:58 <yota> gawel: avec un petit test de pymetrics aussi, histoire de te donner une indication sur les endroits a faire gaffe pour ta couverture de test :)
02:58 <ogrisel> ca fait des stats lignes par lignes
02:58 <ogrisel> rien de plus
02:58 <gawel> connais pas non plus
02:59 <yota> ogrisel: ok donc line coverage
02:59 <gawel> je propose que tu nous fasse un topo au prochaine réu :p
02:59 <yota> ahaha
02:59 <yota> wai ca m'intéresse d'avoir votre avis
02:59 <ogrisel> yep on peut faire ca en 10min
02:59 <yota> je fais enfin mon taff pour de vrai la a sact
02:59 <yota> relire du code et faire chier les devs :)
03:00 <gawel> ah mais ca coverage tout python !!!
03:00 <yota> faire du design
03:00 <gawel> ca pu
03:00 <yota> quoi qui pu ?
03:00 <gawel> with-coverage
03:00 <ogrisel> oui il est tout pourrite le model coverage :)
03:00 <ogrisel> module
03:00 <gawel> ca analise tout ton python path :/
03:00 <yota> faut lui indiquer le module
03:00 <yota> de mémoire
03:01 <ogrisel> pour trace2html j'utilise une whitelist de module a tracer
03:01 <yota> --cover-package=COVER_PACKAGES
03:01 <ogrisel> et sa ignore les autres
03:01 <ogrisel> au bah c'est pareil alors :)
03:01 <yota> --cover-inclusive Include all python files under working directory in
03:01 <yota> coverage report. Useful for discovering holes in test
03:01 <yota> coverage if not all files are imported by the test
03:01 <yota> suite. [NOSE_COVER_INCLUSIVE]
03:01 <yota> y'a des options
03:01 <gawel> nose.plugins.cover: INFO: Coverage report will include only packages: ['pybb']
03:01 <gawel> :)
03:02 <yota> sinon je suis en train de matter zope.testing, il a aussi un module coverage
03:02 <yota> les 2 acceptent de unittest
03:02 <yota> par contre je vois pas doctet
03:02 <yota> doctest
03:02 <gawel> dans zope.testing ?
03:02 <gawel> zope.testing.doctest :)
03:03 <yota> ah cool
03:03 <gawel> TOTAL 537 457 85%
03:03 <gawel> Pas si mal :p
03:04 <yota> héhé
03:05 <yota> le code coverage n'est pas un indicateur qualitatif, car seul le path coverage est fiable
03:05 <yota> mais c'est un début
03:05 <yota> zut
03:06 <yota> le code coverage (des modules pythons actuels) n'est pas un indicateur qualitatif, car seul le path coverage est fiable
03:06 <yota> mieux
03:06 <ogrisel> disons que ca permet de detecter les modules qui sont pas testés du tout
03:06 <yota> way
03:06 <yota> ou des lignes
03:06 <ogrisel> yep
03:06 <yota> genre quand t'as la moité de ta classe / fonction pas testé :)
03:06 <yota> ée
03:07 <yota> un indicateur qui me semble intéressant est justement le pymetrics, quand tu as une fonction a +de 40
03:07 <yota> ca veut dire qu'il est utile de vérifier tes tests
03:08 <yota> (ca utilise le classique CC
03:09 <yota> comment ca s'appelle deja
03:09 <yota> cyclomatic complexity ?
03:09 <yota> vi c'est ca
03:09 <yota> M = E ? N + 2P
03:14 <ogrisel> ok
03:15 <ogrisel> faudra se faire un topic de discussion la dessus lors du prochain ;eeting
03:22 <yota> wep ca m'intéresse
03:37 <ogrisel> bon aller bonne nuit je vais dormir un peu
10:47 <ccomb> café
10:48 <ccomb> non tiens, melon
11:40 <ogrisel> café
13:35 <ccomb> truc chelou
13:36 <ccomb> In [1]: OxFF
13:36 <ccomb> NameError: name 'OxFF' is not defined
13:39 <ccomb> le 0 est trop proche du O c'est chiant
13:52 <yanngordon> ccomb c'est pas toi qui as posté une offre de collocation ?
13:53 <ccomb> yanngordon non
14:04 <yanngordon> )
14:37 <gawel> http://cecilia.gawel.org:5000/test-forum/add#
14:37 <gawel> admin / admin si y a besoin
15:32 <gawel> ccomb ogrisel vous vous agitez ?
15:33 <ogrisel> oui on est chez ccomb la
15:33 <gawel> ouais je sais
15:33 <gawel> c'était pas la question :p
15:39 <ogrisel> on se retrouve vers 17h qqpart ?
15:39 <gawel> ca va
15:39 <ogrisel> tu veux aller au cheri ou ta une autre idee ?
15:39 <gawel> 17h chéries
15:39 <ogrisel> ok
18:51 <ccomb_:#afpy> gawel: http://theinternetisterrible.com/wp-content/things/engineer.jpg
18:57 <yota:#afpy> ahahah