Bonjour,

La commande :
python3 /opt/app-root/lib/python3.9/site-packages/ATL/TestRunner.py --config=E2E/Global/AUTOTEST1.tsdef

Affiche :
Connect BRTE500 on connector J21
yes ?


(je dois répondre par "yes" pour continuer)

J'ai réalisé un script pour lancer plusieurs commandes comme celle-ci à la suite.

Mon soucis du moment est que je dois répondre "yes" chaque fois que la réponse est "yes ?".

Je me permets de vous présenter mon premier jet mais ce script semble avoir un problème car je ne lis jamais le premier "yes ?"
Il affiche :
Affiche et reste bloqué sur :
Connect BRTE500 on connector J21

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
import pty
import os
import subprocess
 
def run_atl_test_runner():
    command = [
        "python3",
        "/opt/app-root/lib/python3.9/site-packages/ATL/TestRunner.py",
        "--config=E2E/Global/AUTOTEST1.tsdef"
    ]
 
    try:
        master, slave = pty.openpty()  # Création du pseudo-terminal
        process = subprocess.Popen(
            command,
            stdin=slave,
            stdout=slave,
            stderr=subprocess.PIPE,
            text=True,
        )
        os.close(slave)
 
        while True:
            output = os.read(master, 2048).decode()  # Lire la sortie
            print(output, end="")  # Afficher la sortie
            if "yes ?" in output:
                os.write(master, "yes\n")  # Envoyer "yes" en réponse
    except Exception as e:
        print(f"An error occurred: {e}")
 
if __name__ == "__main__":
    run_atl_test_runner()
En vous remerciant d'avoir lu jusque là.

Michel