lundi 28 novembre 2011

autotest du pauvre

On a tous nos petits soucis. Professionnellement, je développe beaucoup de shell (j'en vois qui rigolent au fond). J'aime bien développer de façon iterative, vous savez bien, ce truc là, avec des tests écrits avant le code de prod.
Là où le bât blesse est qu'il faut transférer le code sur le serveur de test. Souvent. Trop souvent. Comme j'en avais marre de basculer toutes les 30 secondes entre gvim, filezilla et putty, j'ai bricolé un autotest en python, du genre :


import os

def main():
    while True:
        test_ord_install()

def test_ord_install():
    tested_script = 'mon_scrip.ksh'
    launcher = "test_mon_script.ksh"
    os.system('pscp data_test.dat prepdev1@server:testRto')
    os.system('pscp %s prepdev1@server:testRto' % launcher)
    os.system('pscp %s prepdev1@server:testRto' % "testLib.ksh")
    os.system('pscp ..\sh\%s prepdev1@server:testRto/sh' % tested_script)
    os.system('pscp ..\config\%s prepdev1@server:testRto' % 'ORDappli.env')
    os.system('plink prepdev1@server "cd testRto && chmod +x *.ksh && ./%s"' % launcher)


Vous ne le savez peut-être pas mais pscp et plink sont livrés avec putty. Il suffit de les avoir dans le path windows. Il s'agit d'équivalents à scp et ssh. J'utilise une clé RSA pour me connecter.

Après ça, il y a plus qu'à coder et regarder de temps en temps sur l'invite de commande si ça passe ou pas :).