Django 1.7 et écriture de tests, petites explorations

 Django  Comments Off on Django 1.7 et écriture de tests, petites explorations
Nov 022014
 

Je me suis enfin lancé dans l’écriture d’une app django gérant les badges (ou les succès si vous préférez). L’objectif étant de pouvoir réécrire de zéro histoires de rôlistes. L’idée était de tenter de faire une vraie app django, en mode réutilisable, histoire que peut-être des gens puissent trouver intéressant de l’utiliser.

Je me suis retrouvé avec deux problèmes concernant mes tests :

  • Souvent on gagne un badge quand on a créé suffisamment de chose (comme des checkin, des billets de blogs ou des contributions diverses). Sauf que je ne voulais pas créer dans mon app des models ne servant à rien, juste pour pouvoir en créer lors de mes tests.
  • Je voulais pouvoir créer des badges se gagnant sur un critère du style ‘être venu un certain nombre de fois sur une URL.’ Donc mettre en place des décorateurs sur des vues. Mais là encore, je ne voulais pas avoir à créer des vues dans mon application rien que pour les tests.

Au final, en lisant un peu de doc, j’ai réussi à faire ce que je voulais.

Tester un décorateur sans créer des  vues inutiles dans son app.

Je savais déjà comment forger des requests avec la RequestFactory. Par contre pour créer des vues, je n’en avais pas la moindre idée.. Une petite question plus tard, Foxmask m’a indiqué un lien qui allait me donner la solution que je cherchais. (le voici) Il suffisait au final d’utiliser mock pour créer, directement dans mes tests, une fausse vue que j’allais pouvoir décorer.
Une dernière subtilité, comme vous le verrez dans le lien novapost (ou dans mon code), si vous utilisez wraps pour créer votre décorateur, il faudra ajouter l’argument assigned=available_attrs(view_func) à votre appel à wraps (tout comme django le fait). Cela sera nécessaire pour pouvoir utiliser votre décorateur en mode fonction, ce que vous devrez faire dans vos tests, à cause d’un bug python 2 (celui-ci :http://bugs.python.org/issue3445)

Créer des models uniquement pour les tests

Ici après quelques test infructueux, je suis finalement tombé sur ce ticket dans le track django. Dont le dernier commentaire remonté à 2 mois. Et en fait, l’astuce est toute simple. Il suffit de créer le model de test dans le fichier de test qui va bien (c’est ici au niveau de mon code) et ensuite de modifier manuellement une des migrations django pour ajouter la création du modèle, uniquement si on est dans le mode Test. Petite modification de mon cru comparé au code donné dans le ticket, j’ai fait en sorte que les models de tests soit créé si la base commence par test ou si elle est stockée en mémoire (mon code est ici).

Rien de bien merveilleux ou de bien révolutionnaire, mais bon, on ne sait jamais, ça pourrait peut-être être utile à l’un d’entre vous.


Flattr this!

 Posted by at 18:41
Apr 102014
 

Vous êtes djangonautes ? Et vous n’avez pas encore acheté votre billet pour DjangoCon Europe ?

Alors peut-être que vous ne le saviez pas. Après tout, même si on a essayé de faire un maximum de com sur le sujet, on n’en fait jamais assez et il est fort possible que vous soyez passé à coté.

Donc, je vous refais un petit topo.

3 jours de confs du 13 au 15 mai et 2 jours de sprint le 16 et 17 mai. Et tout cela en France, donc facile au niveau transport, il vous suffit de prendre un TGV.

Mais surtout, surtout, ce ne sont pas trois jours de confs dans une simple salle de conf, aussi belle soit-elle.

Non, ce sont trois jours de confs (et 2 jours de sprint) dans une île. Oui, dans une ILE. L’île des embiez pour être exact, une petite île qui se trouve dans le Var qui appartient à la famille Ricard.

Imaginez donc la scéne. Vous sortez de votre TGV à Toulon, vous prenez un bus et vous arrivez sur un port, le port du Busc. Et la vous prenez un petit ferry et vous voguez, le doux soleil de méditerranée vous réchauffant les neurones.

Et puis après 10 minutes d’une aventureuse traversée, vous accosterez, tel Jim Hawkins, sur l’île des poneys ! Et vous n’en repartirez plus avant 3 (ou 5) jours. Parce que oui, quitte à faire des choses folles, on s’est dit qu’on allait aussi prendre en charge l’hébergement. Comme ça vous n’aurez pas à vous embêter à chercher un hotel proche des conférences, à pester parce que celui que vous vouliez n’a plus de chambre, etc etc, non tout est compris dans le billet.

Et puis on s’est dit que comme c’était sur une île, y il y avait donc des plages. Et que qui dit plage dit baignade. Et que votre conjoint(e) allait peut être vous en vouloir si vous partiez 3 ou 5 jours au soleil sans lui/elle. Donc il y a un forfait pour les accompagnant(e)s et les enfants aussi. Comme ça, vous pouvez même venir en famille.

En fait, la seule chose que l’on ne fournit pas, c’est la crème solaire. Pour le reste, que ça soit nourriture, vin, fromage, ou café, pas de problème. (Par contre, je suis désolé mais je crois que la pizza froide n’est pas au menu des repas… mais vous survivrez à 3 jours sans pizza froide hein ? Surtout si on le remplace par des poissons grillés à la plancha).

Bon après vous allez me dire que tout ça, c’est bien beau. Mais que des confs on y vient surtout pour les confs et pas que pour passer des vacances ; Et qu’il va falloir que le programme il secoue les cocotiers (par contre désolé, il y en a pas sur l’île des cocotiers) un peu, parce que sinon, autant aller à une conf php hein ..

Alors je vous dirais, que vu le programme que l’on vous a préparé, les cocotiers ils vont carrément se trémousser des racines jusqu’au noix de coco. Parce qu’il n’y a vraiment que du bon (et là ce n’est pas l’organisateur qui parle mais le djangonaute impatient).

Vous voulez comprendre à quoi sert App Loading ? (une des nouveautés de la future version). Ca tombe vraiment bien parce qu’Aymeric Augustin vous en parlera pendant une keynote qui s’annonce captivante. Vous faites de l’ecommerce et vous utilisez django-oscar ou vous voulez l’utiliser ? Vous êtes vraiment chanceux, le créateur de django-oscar sera là. Il vous le présentera et bien entendu vous aurez trois jours pour discuter avec lui. Et en plus, comme personne ne quitte l’île, vous êtes sur de ne pas le rater. Il sera forcément là, sur l’île, avec vous ! Et là, je ne vous parle que de deux conférences, mais je pourrais aussi vous parler de Meghan qui va nous parler de expérience utilisateur, de Christophe pettus, de Jacob Burch et Kaplan Moss qui vont disséquer Django, de Julia qui parlera RAD et Django, d’Angel qui mixe Jeux vidéos et REST, etc etc .. Mais je ne vais pas non plus vous faire un copier coller de la page programme, je vous ai donné le lien, vous pourrez juger par vous même et voir quelles seront les confs qui vont vous faire dire ‘Whouaaaa, il faut que j’y sois’.

Donc récapitulons ensemble  :
– un super lieu juste totalement fou (vous voulez des photos, allez en voir ici !! )
– un super programme
– des confs qui sont à la fois des confs et des vacances ( je vous ai dit qu’il y avait une piscine aussi ? Et un sauna ? En accès libre pour les conférenciers ? Non parce que je suis pas sur de vous l’avoir dit)

Maintenant la question que je me pose c’est : Si vous n’avez pas encore votre billet, pourquoi vous perdez du temps à me lire ? Foncez, les ventes seront stoppées le 20 avril au soir !!!

Ha, je pourrais dire aussi que ça sera l’occasion de voir une tripotée de Djangonautes, français ou pas ; l’occasion donc de refaire le monde du développement web une fois de plus, le soir, un verre de ricard (avec ou sans alcool) à la main tandis que le chant des cigales nous bercera doucement.

Non mais vous êtes encore là ? J’espère que vous avez votre ticket alors !!!


Flattr this!

 Posted by at 17:41

Les poneys envahissent la ville rose, aka DjangoCon Toulouse, vive les pains aux chocolats !

 Django  Comments Off on Les poneys envahissent la ville rose, aka DjangoCon Toulouse, vive les pains aux chocolats !
Nov 262012
 

Ce week-end avait lieu la première DjangoCon Toulouse, une rencontre django régionale au pays du cassoulet. Les festivités commençaient à 11h30 le samedi avec des LT, puis une rafale de huit conférences l’après midi, et pour finir sprint et ateliers le dimanche.

Cette Djangocon est également la première Cong qui n’était pas un événement autonome mais un événement à l’intérieur d’un autre événement (à savoir le capitole du libre). Je dois avouer que je suis assez partagé sur cette solution de l’événement dans l’événement. Effectivement cela permet d’attirer ‘des curieux’ qui viennent papillonner le temps d’une conférence ou d’un atelier (le nombre de 64 personnes dans l’auditoire a d’ailleurs été atteint). Cela permet aussi d’assister à une conférence de Jérémie Zimmermann la fin du premier jour. Enfin, cela permet de diminuer la charge de travail pour les orgas. Mais cela aussi signifie ne pas être mettre de tout les choix (essentiellement logistique) et de devoir gérer les interactions avec l’organisation globale. Je suis donc partagé sur ce mode d’événement à l’intérieur d’un autre.

Mais venons en maintenant au Djangocon en elles mêmes. Tout d’abord le programme. LT et conférences étaient très intéressants. La rafale de huit conférence l’après midi, conférence de 20 minutes plus 5 minutes de questions auraient pu être difficile à encaisser mais les conférences étant intéressantes et les orateurs d’un bon niveau, tout est passé comme une lettre à la poste.

Étonnamment, les ateliers et sprint du dimanche matin furent même plus productif que ce à quoi je m’attendais. Et l’organisation ‘au dépoté’ (en tout cas ce n’étais pas indiqué dans le programme) d’un atelier d’initiation était une excellente idée. Cela confirme à nouveau mon sentiment qu’il y a une forte demande concernant des initiations à Django et que c’est des choses que les ‘anciens’ de la communauté, les sachants, doivent mettre en place pour partager leur connaissance et jouer le rôle de ‘mentor’.

Alors effectivement, il y a, à mon sens des choses améliorables au niveau logistique, comme l’approvisionnement en jus de fruit / café / eau ou le repas/soirée du samedi soir, mais ce n’est pas si grave que cela (et on revient à mon premier point, le fait de s’intégrer dans un événement plus grand).

Les points positifs importants que je retiens de cette conférence sont :

  • avoir des conférences non totalement centré sur Django est une excellente chose. À Rennes il y avait une conf sur cherrypie et circus, à Toulouse une conf (différente de celle de Rennes) sur circus aussi et ça permet d’ouvrir un peu ses œillères.
  • Les ateliers débutants sont des choses à mettre en place. Se pose la question de les mettre en place dans des Djangocongs d’une taille plus importantes.
  • La soirée du samedi soir est un point très important, de mon point de vue. Les soirées jeux de plateau remportent mes suffrages, pour l’instant.
  • Sprint et ateliers le dimanche matin peuvent être efficaces. Peut-être que la solution est d’en décaler leur démarrage en prenant en compte le besoin de sommeil.

Ces Djangocon sont à mon sens un beau succès et j’ai vraiment été très heureux d’y être. Je profite de ce billet pour, à nouveau, remercier les organisateurs et les orateurs. (Et ce fut assez rigolo de se rendre compte qu’il y avait des ponts très intéressant entre les 2 djangocon Rennes et Toulouse, comme par exemple  une présentation de tastypie à Rennes, suivi d’un atelier Tastypie à Toulouse ).

 


Flattr this!

 Posted by at 23:13

Des poneys avec des chapeaux ronds  aka DjangoBreizh, les poneys envahissent la bretagne

 Django  Comments Off on Des poneys avec des chapeaux ronds  aka DjangoBreizh, les poneys envahissent la bretagne
Nov 182012
 

Samedi 17 novembre c’était donc la première edition des DjangoBreizh, une rencontre django locale en bretagne organisé par Exirel (bon ok, je ne suis pas tout a fait breton et pourtant j’y étais mais j’étais une exception) Le programme se découpait ainsi :

  • matin conférence
  • début d’après midi LT
  • reste de l’après midi barcamp ou atelier d’initiation

Pour une première conf, et conf régionale qui plus est, je trouve que le public fut au rendez-vous. 27 personnes pour les conférences, c’est en effet une belle réussite. Pour l’occasion, la cantine numérique de Rennes avait prêté ses locaux toutes la journée, ce qui a permis de mettre en place les conférence du matin et l’atelier initiation du matin (les barcamps se passant à quelques dizaines de mettre à la maison des associations)

Ce que je retiens de cette rencontre régionale (hormis le fait qu’à rennes, il pleut tout le temps) c’est :

  • il peut être difficile d’avoir des conférenciers locaux, il suffit alors de les faire venir d’ailleurs (mais il y a eu un certain nombre de conférencier ‘du cru’ et ça fait plaisir)
  • la partie barcamp est une partie toujours très intéressante et qui fonctionne vraiment bien
  • l’atelier d’initiation était une première, jamais encore cela n’avait eu lieu dans une rencontre django. Le public était restreint (6 à 8 personnes) mais j’ai l’impression que c’est un format qui fonctionne et qui réponds à une vrai demande des gens, un vrai plus de cette édition bretonne, et qu’il faut, à mon avis, répliqué, à minima, dans les autres éditions régionales.
  • Lors des djangocong 2012, certains pensaient que les rencontres régionales allaient ‘faire se relâcher la pression sur la conférence nationale’. A priori, si je généralise à partir de l’exemple de cette première conférence régionale, c’est l’inverse qui va se passer. Les gens qui ‘goûtent’ aux rencontres django régionale, dés qu’ils apprennent qu’il y a des ‘grosses rencontres’, veulent absolument y aller.
  • Le soir c’était free style, une bonne partie des gens se sont retrouvés dans un bar à jeux pour siroter une bière en jouant à des jeu de plateau. Et ce fut excellent. Le format bire et jeu de plateau testé pour la première fois en 2011 montre encore une fois qu’il est un excellent format (voir le meilleur) en ce qui concerne les soirées post conférences (ou inter pour des confs de 2 jours).
  • J’avais peur que les rencontres régionales ne soient que des espèces de mini grandes djangocong, avec uniquement des ‘vieux’ djangonautes présents. Ce ne fut pas le cas et c’est tant mieux.

En résumé, ce fut une excellent première édition et j’ai hâte de voir ce que donnera la deuxième édtion (si il y en a une).

En tout cas merci à Exirel d’avoir organiser tout cela, à la cantine numérique de Rennes d’avoir participé à l’aventure des django en bretagne, aux auditeurs d’être venus faire des conférences de qualités et aux rennais d’avoir répondu présent.

Et à la semainse prochaine pour DjangoCassoulet à Toulouse !!!!! Espérons qu’il y aura des pains au chocolat !


Flattr this!

 Posted by at 22:57

Orateurs, les rencontres django régionales ont besoin de vous !

L’un des résultats des discussions de la dernière DjangoCong fut de lancer l’idée de faire des DjangoCon régionales plus petites et qui permettraient de ne pas centraliser les attentes de toute la communauté sur un seul événement national. Et du coup d’éviter de générer de la frustration pour ceux qui n’ont pu acheter leurs billets […]

Installation de virtualenvwrapper chez Alwaysdata

J’ai il y a quelques temps fait de multiples tests chez AD. Certains nécessitaient l’utilisation de paquet python non installé par défaut sur le serveur mutu AD. Du coup, j’ai voulu installer virtualenwrapper pour me simplifier la tache. Voici la méthode que j’ai utilisé. Je suis preneur de toute amélioration que vous pourriez me remonter […]

Pony rider in the skyyyy… c’est le retour des djangocong YeeHa !!

Je vous préviens, tout de suite, j’aurais pu céder à la facilité et parsemer mon billet d’annonce d’image de petit poney rose, pour coller aux thèmes du poney, de django, de l’amour platonique qui anime tout ceux qui font du django ( #sharethelove nan ?? ha non pardon c’est pas la bonne conférence). Mais non, je […]

Django-ratelimit-backend ne réglera pas vos problèmes de foie, mais de rate oui…

Deuxième édition de la django app du mois précédent, encore une fois sur le fil, alors que les citrouilles continuent à ricaner dans leurs coins. Ce mois-ci c’est django-ratelimit-backend, une des multiples apps de monsieur Brutasse (qui ne doit jamais dormir pour publier autant de truc…) 1- Où on le trouve, comment on l’installe, tout […]

Sans lui, zinnia-rrivait pas. Lui qui ? Django Zinnia, la django app du mois précédent

Cela fait maintenant plusieurs mois que je n’arrive pas à rattraper le retard d’une django app du mois. J’ai donc décidé de suivre les conseils de ce cher daks et d’officialiser mon retard en parlant de Django app du mois précédent. Voici donc la première django app du mois précédent (et bon j’ai bien failli […]

Django-Autocomplete, and all your requests will be complete, but be careful with the horn

Bon, je suis encore en retard pour la django app du mois de juillet, mais je m’améliore, je n’ai plus que 20 jours de retard. Espérons que la django app du mois d’aout soit à l’heure…. En attendant de voir si en août, à l’heure je serais, je vous propose de découvrir cette petite django-app […]

Impostor, aucun rapport avec le courrier, la poste ou les gens de petite taille

Avec énormément de retard (non monsieur Daks, je ne vais pas renommer ma rubrique la django app du mois dernier) voici donc la django app du mois de juin. Ce mois-ci, enfin le mois dernier, je vais vous présenter Impostor une application que j’ai découvert au détour d’un tweet (de dzen je crois ) 1- […]