Comments on: Capturer l’affichage des prints d’un code Python http://sametmax.com/capturer-laffichage-des-prints-dun-code-python/ Du code, du cul Mon, 28 Oct 2019 11:54:55 +0000 hourly 1 https://wordpress.org/?v=4.9.7 By: JeromeJ http://sametmax.com/capturer-laffichage-des-prints-dun-code-python/#comment-2191 Mon, 01 Oct 2012 02:23:59 +0000 http://sametmax.com/?p=2343#comment-2191

Justement. Le problème à la base venait de là … impossible d’effectuer des tests sur une fonction faisant des inputs.
Du coup j’ai investiguer sur comment fonctionnait input en background : il exécute la méthode readline de stdin.

Enfaite c’est cette méthode qui est bloquante :) si on écrase stdin en lui donnant une méthode non bloquante, alors il prendra directement la valeur qu’on lui donne (comme dans mon exemple).

]]>
By: Sam http://sametmax.com/capturer-laffichage-des-prints-dun-code-python/#comment-2177 Sun, 30 Sep 2012 04:35:58 +0000 http://sametmax.com/?p=2343#comment-2177 Bonne idée, mais input() est pas bloquant ? Du coup faudrait un thread non ? J’ai pas testé, donc je dis ça au pif.

]]>
By: JeromeJ http://sametmax.com/capturer-laffichage-des-prints-dun-code-python/#comment-2172 Sat, 29 Sep 2012 23:18:29 +0000 http://sametmax.com/?p=2343#comment-2172 Dans le même style (tu pourrais en faire un article), y a moyen de remplir automatiquement les entrées utilisateur.

Genre une fonction qui requiert une entrée une utilisateur:

import sys

sys.stdin = type('ClassName', (), {'readline': lambda: "ROUGE"})

color = input("Quelle couleur ?")
print(color)

sys.stdin = sys.__stdin__

L’idée est LARGEMENT améliorable :) mais c’est super bon à savoir.
PS: J’ai utilisé une class dynamique pour gagner de la place.

Enjoy.

]]>
By: Sam http://sametmax.com/capturer-laffichage-des-prints-dun-code-python/#comment-2170 Sat, 29 Sep 2012 19:46:42 +0000 http://sametmax.com/?p=2343#comment-2170 Le plugin qui met le site en version mobile déconne parfois et se déclenche pour rien. Il requiert javascript.

J’ai aucune idée de comment résoudre ça, wordpress marche ou pas, mais il n’y a pas moyen de réparer sans passer des jours dans un code spagetti merdique immaintenable.

]]>
By: jean michel http://sametmax.com/capturer-laffichage-des-prints-dun-code-python/#comment-2169 Sat, 29 Sep 2012 16:42:34 +0000 http://sametmax.com/?p=2343#comment-2169 Je ne peux pas lire l’article parce que je navigue avec javascript désactivé. C’est quoi cette merde sérieux ?

]]>
By: fwix http://sametmax.com/capturer-laffichage-des-prints-dun-code-python/#comment-2168 Sat, 29 Sep 2012 16:08:03 +0000 http://sametmax.com/?p=2343#comment-2168 ah les canards en plastique …

]]>
By: Sam http://sametmax.com/capturer-laffichage-des-prints-dun-code-python/#comment-2167 Sat, 29 Sep 2012 15:26:06 +0000 http://sametmax.com/?p=2343#comment-2167 Pour le tests c’est vrai que c’est pratique.

Pour ceux qui ne savent pas de quoi Soli parle, la lib mock (pip install mock ou http://pypi.python.org/pypi/mock/), et une lib qui permet de faire tout un tas de simulations avec les objets en Python à des fins de tests.

En l’occurence mock.patch:

http://www.voidspace.org.uk/python/mock/patch.html

sert aussi de décorateur et context manager, et est une généralisation de l’astuce de cet article.

]]>
By: Soli http://sametmax.com/capturer-laffichage-des-prints-dun-code-python/#comment-2165 Sat, 29 Sep 2012 15:03:30 +0000 http://sametmax.com/?p=2343#comment-2165 Détourner sys.stdout/stderr est aussi un truc pratique pour tester les sorties d’un code qui fait des print à juste titre. Un petit coup de mock.patch('sys.stdout', new_callable=BytesIO) et hop !

]]>