#!/usr/bin/env python import os import sys import pexpect import unittest class Test(unittest.TestCase): def test_fish(self): os.environ["TERM"] = "vt100" child = pexpect.spawn("fish -i") with open(os.environ["IDF_PATH"] + "/fish" + str(sys.version_info.major) + ".out", "wb") as output: child.logfile = output child.sendline('. ./export.fish') result = child.expect( ["Go to the project directory and run.*idf\\.py build", pexpect.EOF, pexpect.TIMEOUT], timeout=40) self.assertEqual(result, 0, "Export was not successful!") child.send("idf.py \t\t") result = child.expect(["all.*app.*app-flash.*bootloader.*", pexpect.EOF, pexpect.TIMEOUT], timeout=40) self.assertEqual(result, 0, "Autocompletion for idf.py failed in fish!") def test_bash(self): os.environ["TERM"] = "xterm-256color" child = pexpect.spawn("bash -i") with open(os.environ["IDF_PATH"] + "/bash" + str(sys.version_info.major) + ".out", "wb") as output: child.logfile = output child.sendline('. ./export.sh') child.send("idf.py \t\t") result = child.expect( ["Go to the project directory and run.*idf\\.py build", pexpect.EOF, pexpect.TIMEOUT], timeout=40) self.assertEqual(result, 0, "Export was not successful!") result = child.expect( ["all.*app.*app-flash.*bootloader.*bootloader-flash.*build-system-targets.*clean.*", pexpect.EOF, pexpect.TIMEOUT], timeout=40) self.assertEqual(result, 0, "Autocompletion for idf.py failed in bash!") def test_zsh(self): child = pexpect.spawn("zsh -i") with open(os.environ["IDF_PATH"] + "/zsh" + str(sys.version_info.major) + ".out", "wb") as output: child.logfile = output child.sendline('. ./export.sh') result = child.expect( ["Go to the project directory and run.*idf\\.py build", pexpect.EOF, pexpect.TIMEOUT], timeout=40) self.assertEqual(result, 0, "Export was not successful!") child.send("idf.py \t\t") result = child.expect( ["all.*app.*app-flash.*bootloader.*bootloader-flash.*build-system-targets.*clean.*", pexpect.EOF, pexpect.TIMEOUT], timeout=40) self.assertEqual(result, 0, "Autocompletion for idf.py failed in zsh!") if __name__ == '__main__': unittest.main()