From 978b5308e87ff46712f5fee682f36d3c6dc59c41 Mon Sep 17 00:00:00 2001 From: "martin.gano" Date: Thu, 12 Nov 2020 11:52:45 +0100 Subject: [PATCH] Close files after writing. --- tools/ci/config/host-test.yml | 2 +- tools/ci/test_autocomplete.py | 60 ++++++++++++++++++++--------------- 2 files changed, 36 insertions(+), 26 deletions(-) diff --git a/tools/ci/config/host-test.yml b/tools/ci/config/host-test.yml index 44c9cef32f..b1a19020cf 100644 --- a/tools/ci/config/host-test.yml +++ b/tools/ci/config/host-test.yml @@ -291,7 +291,7 @@ test_docs: - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 ./test_docs.py - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 ./test_sphinx_idf_extensions.py -.test_autocomplete: +test_autocomplete: extends: .host_test_template image: $CI_DOCKER_REGISTRY/linux-shells:1 artifacts: diff --git a/tools/ci/test_autocomplete.py b/tools/ci/test_autocomplete.py index 3523a280a8..d85a915ee3 100755 --- a/tools/ci/test_autocomplete.py +++ b/tools/ci/test_autocomplete.py @@ -1,5 +1,6 @@ #!/usr/bin/env python import os +import sys import pexpect import unittest @@ -8,38 +9,47 @@ class Test(unittest.TestCase): def test_fish(self): os.environ["TERM"] = "vt100" child = pexpect.spawn("fish -i") - child.logfile = open(os.environ["IDF_PATH"] + "/fish.out", "wb") - child.sendline( - '. {$IDF_PATH}/export.fish >> {$IDF_PATH}/debug.out') - child.send("idf.py \t\t") - result = child.expect(["all.*app.*app-flash.*bootloader.*", pexpect.EOF, pexpect.TIMEOUT], timeout=5) - self.assertEqual(result, 0, "Autocompletion for idf.py failed in fish!") - result = child.expect(["bootloader-flash.*build-system-targets.*clean.*", pexpect.EOF, pexpect.TIMEOUT], - timeout=5) - self.assertEqual(result, 0, "Autocompletion for idf.py failed in fish!") + 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") - child.logfile = open(os.environ["IDF_PATH"] + "/bash.out", "wb") - child.sendline( - '. ${IDF_PATH}/export.sh >> ${IDF_PATH}/debug.out') - 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=5) - self.assertEqual(result, 0, "Autocompletion for idf.py failed in bash!") + 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") - child.logfile = open(os.environ["IDF_PATH"] + "/zsh.out", "wb") - child.sendline( - '. ${IDF_PATH}/export.sh >> ${IDF_PATH}/debug.out ') - child.send("idf.py \t") - result = child.expect( - ["all.*app.*app-flash.*bootloader.*bootloader-flash.*build-system-targets.*clean.*", pexpect.EOF, - pexpect.TIMEOUT], timeout=5) - self.assertEqual(result, 0, "Autocompletion for idf.py failed in zsh!") + 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__':