edouard@3424: """ This test opens, builds and runs exemple project named "python". edouard@3424: Test succeeds if runtime's stdout behaves as expected edouard@3424: """ edouard@3424: edouard@3424: import os edouard@3424: import time edouard@3424: edouard@3424: # allow module import from current test directory's parent edouard@3424: addImportPath(os.path.dirname(getBundlePath())) edouard@3424: edouard@3424: # common test definitions module edouard@3424: from sikuliberemiz import * edouard@3424: edouard@3424: # Start the app edouard@3424: proc,app = StartBeremizApp(exemple="python") edouard@3424: edouard@3424: # To detect when actions did finish because IDE content isn't changing edouard@3424: # idle = IDEIdleObserver(app) edouard@3424: # screencap based idle detection was making many false positive. Test is more stable with stdout based idle detection edouard@3424: edouard@3424: stdoutIdle = stdoutIdleObserver(proc) edouard@3424: edouard@3424: # To send keyboard shortuts edouard@3424: k = KBDShortcut(app) edouard@3424: edouard@3424: k.Clean() edouard@3424: edouard@3424: stdoutIdle.Wait(2,15) edouard@3424: edouard@3424: k.Build() edouard@3424: edouard@3424: stdoutIdle.Wait(2,15) edouard@3424: edouard@3424: k.Connect() edouard@3424: edouard@3424: stdoutIdle.Wait(2,15) edouard@3424: edouard@3424: k.Transfer() edouard@3424: edouard@3424: stdoutIdle.Wait(2,15) edouard@3424: edouard@3424: #del idle edouard@3424: edouard@3424: del stdoutIdle edouard@3424: edouard@3424: k.Run() edouard@3424: edouard@3424: # wait 10 seconds for 10 Grumpfs edouard@3424: found = waitPatternInStdout(proc, "Grumpf", 10, 10) edouard@3424: edouard@3424: app.close() edouard@3424: edouard@3424: if found: edouard@3424: exit(0) edouard@3424: else: edouard@3424: exit(1) edouard@3424: