From 2e8e620d94f2b9701e89a8b0eb73435d09bea391 Mon Sep 17 00:00:00 2001 From: Sergei Silnov Date: Fri, 27 May 2022 10:41:48 +0200 Subject: [PATCH] Tools: Make idf.py tests independent on extra extensions --- tools/test_idf_py/test_idf_py.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/tools/test_idf_py/test_idf_py.py b/tools/test_idf_py/test_idf_py.py index c027b54f8c..5592c55fb3 100755 --- a/tools/test_idf_py/test_idf_py.py +++ b/tools/test_idf_py/test_idf_py.py @@ -15,9 +15,9 @@ # limitations under the License. import os -import sys -import unittest import subprocess +import sys +from unittest import TestCase, main try: from StringIO import StringIO @@ -36,7 +36,17 @@ extension_path = os.path.join(current_dir, 'test_idf_extensions', 'test_ext') link_path = os.path.join(current_dir, '..', 'idf_py_actions', 'test_ext') -class TestExtensions(unittest.TestCase): +class TestWithoutExtensions(TestCase): + def setUp(self): + self.initial_env = dict(os.environ) + os.environ['IDF_COMPONENT_MANAGER'] = '0' + os.environ['IDF_EXTRA_ACTIONS_PATH'] = '' + + def tearDown(self): + os.environ = self.initial_env + + +class TestExtensions(TestWithoutExtensions): def test_extension_loading(self): try: os.symlink(extension_path, link_path) @@ -78,7 +88,7 @@ class TestExtensions(unittest.TestCase): os.remove(link_path) -class TestDependencyManagement(unittest.TestCase): +class TestDependencyManagement(TestWithoutExtensions): def test_dependencies(self): result = idf.init_cli()( args=['--dry-run', 'flash'], @@ -129,7 +139,7 @@ class TestDependencyManagement(unittest.TestCase): 'WARNING: Command "clean" is found in the list of commands more than once.', capturedOutput.getvalue()) -class TestVerboseFlag(unittest.TestCase): +class TestVerboseFlag(TestWithoutExtensions): def test_verbose_messages(self): output = subprocess.check_output( [ @@ -155,7 +165,7 @@ class TestVerboseFlag(unittest.TestCase): self.assertNotIn('Verbose mode on', output) -class TestGlobalAndSubcommandParameters(unittest.TestCase): +class TestGlobalAndSubcommandParameters(TestWithoutExtensions): def test_set_twice_same_value(self): """Can set -D twice: globally and for subcommand if values are the same""" @@ -174,7 +184,7 @@ class TestGlobalAndSubcommandParameters(unittest.TestCase): ) -class TestDeprecations(unittest.TestCase): +class TestDeprecations(TestWithoutExtensions): def test_exit_with_error_for_subcommand(self): try: subprocess.check_output([sys.executable, idf_py_path, "-C%s" % current_dir, "test-2"], env=os.environ) @@ -222,4 +232,4 @@ class TestDeprecations(unittest.TestCase): if __name__ == '__main__': - unittest.main() + main()