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:42 < gawel> ca pete :)
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 < 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 < 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 ouais quand t'as un 401 ?
02:48 < ogrisel> le formulaire GET pour les mots de passe c'est pas terrible au passage
02:48 < gawel> ah mignon :)
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:50 < ogrisel> faut ecrire des tests fonctionnels pour toussa bien sur :)
02:51 < gawel> ----------------------------------------------------------------------
02:51 < gawel> Ran 10 tests in 1.598s
02:53 < gawel> repoze.who catch les 401 et redirige vers le login
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 < 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> 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:58 [#] yota va faire chier son staff au boulot :p
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> 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 < yota> quoi qui pu ?
03:00 < gawel> with-coverage
03:00 < ogrisel> oui il est tout pourrite le model coverage :)
03:00 < gawel> ca analise tout ton python path :/
03:00 < yota> faut lui indiquer le module
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: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 < gawel> dans zope.testing ?
03:02 < gawel> zope.testing.doctest :)
03:03 < gawel> TOTAL 537 457 85%
03:03 < gawel> Pas si mal :p
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:06 < yota> le code coverage (des modules pythons actuels) n'est pas un indicateur qualitatif, car seul le path coverage est fiable
03:06 < ogrisel> disons que ca permet de detecter les modules qui sont pas testés du tout
03:06 < yota> ou des lignes
03:06 < yota> genre quand t'as la moité de ta classe / fonction pas testé :)
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: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:48 < ccomb> non tiens, melon
13:35 < ccomb> truc chelou
13:36 < ccomb> In [1]: OxFF
13:36 < ccomb> NameError: name 'OxFF' is not defined
13:38 [#] ccomb réalise que 0xFF et OxFF sont différents... :D
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:37 < gawel> admin / admin si y a besoin
14:38 [#] gawel fait un editeur WYSINWYG pour reSt
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 < ogrisel> tu veux aller au cheri ou ta une autre idee ?
15:39 < gawel> 17h chéries
18:57 < yota:#afpy> ahahah