Best Python code snippet using fMBT_python
fmbttizen-agent.py
Source:fmbttizen-agent.py  
...670        except IOError: pass671        foundOutputs = [ao for ao in acceptedOutputs if ao in s]672    return foundOutputs, s673_subAgents = {}674def openSubAgent(username, password):675    p = subprocess.Popen('''python -c 'import pty; pty.spawn(["su", "-c", "python /tmp/fmbttizen-agent.py --sub-agent", "-", "%s"])' ''' % (username,),676            shell=True,677            stdin=subprocess.PIPE,678            stdout=subprocess.PIPE,679            stderr=subprocess.PIPE)680    # Read in non-blocking mode to ensure agent starts correctly681    fl = fcntl.fcntl(p.stdout.fileno(), fcntl.F_GETFL)682    fcntl.fcntl(p.stdout.fileno(), fcntl.F_SETFL, fl | os.O_NONBLOCK)683    output2 = ""684    seenPrompts, output1 = waitOutput(p.stdout, ["Password:", "FMBTAGENT"], 5.0)685    if "Password:" in seenPrompts:686        p.stdin.write(password + "\r")687        output1 = ""688        seenPrompts, output2 = waitOutput(p.stdout, ["FMBTAGENT"], 5.0)689    if not "FMBTAGENT" in seenPrompts:690        p.terminate()691        return (None, 'fMBT agent with username "%s" does not answer.' % (username,),692                output1 + output2)693    # Agent is alive, continue in blocking mode694    fcntl.fcntl(p.stdout.fileno(), fcntl.F_SETFL, fl)695    return p, "", ""696def subAgentCommand(username, password, cmd):697    if not username in _subAgents:698        process, output, error = openSubAgent(username, password)699        if process == None:700            return None, (-1, output, error)701        else:702            _subAgents[username] = process703    p = _subAgents[username]704    p.stdin.write(cmd + "\r")705    p.stdin.flush()706    answer = p.stdout.readline().rstrip()707    if answer.startswith("FMBTAGENT OK "):708        return True, _decode(answer[len("FMBTAGENT OK "):])709    else:710        return False, _decode(answer[len("FMBTAGENT ERROR "):])711def closeSubAgents():712    for username in _subAgents:...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
