Python Koans est un portage de "Ruby Koans" d'Edgecase qui peut être trouvé sur http://rubykoans.com/.
Python Koans est un tutoriel interactif pour apprendre le langage de programmation Python en faisant réussir les tests.
La plupart des tests sont corrigés en remplissant les parties manquantes des fonctions d'assertion. Par exemple :
self . assertEqual ( __ , 1 + 2 )
qui peut être corrigé en remplaçant la partie __ par le code approprié :
self . assertEqual ( 3 , 1 + 2 )
Parfois, vous rencontrerez des échecs à des tests déjà remplis. Dans ces cas, vous devrez terminer l’implémentation du code pour progresser. Par exemple, il existe un exercice pour écrire du code qui vous dira si un triangle est équilatéral, isocèle ou scalène.
En plus d'être un excellent moyen d'apprendre un peu de Python, c'est également un bon moyen d'avoir un avant-goût du développement piloté par les tests (TDD).
Python Koans est disponible sur GitHub :
Vous pouvez cloner avec Git ou télécharger la source au format zip/gz/bz2.
En plus de télécharger ou de consulter la dernière version de Python Koans, vous devez installer l'interpréteur Python.
Au moment de la rédaction de cet article, nous prenons en charge Python 3. La politique est d'essayer de rester à jour avec la dernière version de production.
Vous devriez pouvoir travailler avec des versions Python plus récentes, mais les plus anciennes vous poseront probablement des problèmes.
Vous pouvez télécharger Python à partir d'ici :
Après avoir installé Python, assurez-vous que le dossier contenant l'exécutable Python se trouve dans le chemin système. En d’autres termes, vous devez pouvoir exécuter Python à partir d’une console de commande. Ce sera soit python3
, soit pour Windows, ce sera python.exe
.
Si vous rencontrez des problèmes, ceci peut aider :
Les utilisateurs Windows peuvent également souhaiter mettre à jour la ligne dans le fichier batch run.bat
pour définir le chemin python :
FIXER PYTHON_PATH=C:Python39
Jake Hebbert a créé quelques screencasts disponibles ici :
https://www.youtube.com/watch?v=e2WXgXEjbHY&list=PL5Up_u-XkWgNcunP_UrTJG_3EXgbK2BQJ&index=1
Ou si vous préférez lire :
À partir d'un terminal * nix ou d'une invite de commande Windows, exécutez :
.. bloc de code :: sh
python contemplate_koans.py
ou:
python3 contemplate_koans.py
Dans mon cas, j'utilise Python 3 avec Windows, je lance donc mon shell de commande (cmd.exe) et j'exécute ceci :
Apparemment un test a échoué :
AssertionError : Faux n’est pas vrai
Cela me dit aussi exactement où se situe le problème, c'est une assertion à la ligne 12 de .\koans\about_asserts.py
. Celui-ci est simple, il suffit de remplacer False
par True
pour que le test réussisse.
Tôt ou tard, vous rencontrerez probablement des tests dans lesquels vous n'êtes pas sûr de la valeur attendue. Par exemple:
class Dog :
pass
def test_objects_are_objects ( self ):
fido = self . Dog ()
self . assertEqual ( __ , isinstance ( fido , object ))
C'est là que la ligne de commande Python peut s'avérer utile. Dans ce cas, je peux lancer la ligne de commande, recréer le scénario et exécuter des requêtes :
Sniffer vous permet d'exécuter les tests en continu. Si vous modifiez des fichiers dans le répertoire koans, les tests seront réexécutés.
Pour configurer cela, vous devez installer sniffer :
python3 -m pip install sniffer
Vous devez également exécuter l'une de ces bibliothèques en fonction de votre système. Cela déclenchera automatiquement le renifleur lorsqu'un fichier est modifié, sinon le renifleur devra interroger pour voir si les fichiers ont changé.
Sous Linux :
python3 -m pip install pyinotify
Sous Windows :
python3 -m pip install pywin32
Also available here:
https://github.com/mhammond/pywin32/releases
Sur macOS :
python3 -m pip install MacFSEvents
Une fois configuré, il vous suffit d'exécuter :
sniffer
Modifiez simplement un des fichiers koans et vous verrez que les tests se déclenchent automatiquement. Sniffer est contrôlé par scent.py
.
Citant les instructions de Ruby Koans :
"Dans le développement piloté par les tests, le mantra a toujours été rouge, vert, refactoriser. Écrivez un test qui échoue et exécutez-le (rouge), faites-le réussir (vert), puis refactorisez-le (c'est-à-dire regardez le code et voyez si vous pouvez l'améliorer). Dans ce cas, vous devrez exécuter le koan et le voir échouer (rouge), réussir le test (vert), puis prendre un moment et réfléchir au test pour voir ce qu'il vous apprend. et améliorer le code pour mieux communiquer son intention (refactor)."
Il existe un certain nombre d'autres grands projets Koan pour différents langages et frameworks. La plupart d’entre eux se trouvent sur GitHub. Il y a aussi une petite activité de koans sur Bitbucket.
Les traductions sont toujours les bienvenues ! N'hésitez pas à en ajouter un à ce README si vous travaillez dessus :
https://github.com/mswell/python_koans_br
Merci à Jim Weirich et Joe O'Brien pour les Ruby Koans originaux sur lesquels le Python Koans est basé ! De plus, les Ruby Koans empruntent à leur tour aux Metakoans, donc merci également à Ara Howard pour cela !
Merci également à tous ceux qui ont contribué à Python Koans ! J'ai pris une bonne longueur d'avance en reprenant une base de code initiée par les Mikes combinés de FPIP. Voici donc un petit extrait de leur très cool podcast Python :
Un grand merci également à Mike Pirnat @pirnat et Kevin Chase @kjc qui ont participé en tant que co-responsables à plusieurs reprises.