Python Unittest: Abra y espere hasta que se cierre el progtwig

Actualmente trato de crear una prueba unitaria que abre un archivo (con la aplicación correspondiente) y luego la prueba debe esperar hasta que se cierre el progtwig.

def test_HFG(self): #.... print "please edit this file" os.chdir(r'C:\test\a') os.startfile("myfile.vdx") # here I need a "stop until the program is closed"-function #.... 

¿Alguien tiene alguna idea de cómo realizar (lo más simple posible) mi plan?

De los documentos:

startfile () devuelve tan pronto como se inicia la aplicación asociada. No hay ninguna opción para esperar a que la aplicación se cierre, y no hay forma de recuperar el estado de salida de la aplicación.

Si conoce la ruta de la aplicación para abrir el archivo, puede usar subprocess.Popen () que le permite esperar.

Consulte: http://docs.python.org/library/os.html#os.startfile

http://docs.python.org/library/subprocess.html#subprocess.Popen

os.startfile es, por supuesto, completamente no bloqueante sin opciones para esperar.

Recomiendo usar el módulo de subproceso , llamando al comando de “inicio” de Windows para abrir el archivo con el objeto asociado, que hace lo mismo que os.startfile , pero le permite esperar a que finalice el proceso.

p.ej:

 subprocess.call(["start", my_file]) 

La documentación de os.startfile dice explícitamente:

startfile () devuelve tan pronto como se inicia la aplicación asociada. No hay ninguna opción para esperar a que la aplicación se cierre, y no hay forma de recuperar el estado de salida de la aplicación

Por lo tanto, recomiendo usar un método alternativo, como iniciarlo a través de subprocess.Popen , que le permite esperar hasta que finalice el subproceso.

 answer = raw_input("Please Edit this file (done): ") if answer == done: blablabla else: stop programm or whatever 

solo deja que te diga cuando termine, la forma más simple que puedo imaginar