hugoruscitti/pilas

View on GitHub
extras/probar_ejemplos.py

Summary

Maintainability
A
0 mins
Test Coverage
import sys
import subprocess
import os
import signal


TIEMPO_A_ESPERAR_POR_EJEMPLO = 7

path = os.path.join(os.path.dirname(__file__), "..")
os.chdir(path)

directorio_relativo = 'pilasengine/ejemplos/'


def esperar(segundos):
    #print "Esperando %d segundos:" %(segundos)

    for x in range(segundos):
        os.system('sleep 1s')


def check_pid(pid):
    try:
        os.kill(pid, 0)
    except OSError:
        return False
    else:
        return True

def terminar(pid):
    os.kill(pid, signal.SIGKILL)



def probar_ejemplo(directorio_relativo, nombre):
    pid = subprocess.Popen([sys.executable, directorio_relativo + nombre]).pid
    esperar(TIEMPO_A_ESPERAR_POR_EJEMPLO)

    print nombre,

    if check_pid(pid):
        terminar(pid)
        print "[OK]"
    else:
        print "ERROR"


scripts = [script for script in os.listdir(directorio_relativo)
        if script.endswith('.py') and '__' not in script and not script.startswith('.')
       ]

for x in scripts:
    probar_ejemplo(directorio_relativo, x)