fix(tools): catch more general errors in python dependency checker

This commit is contained in:
Peter Dragun
2024-02-14 12:52:52 +01:00
parent d922d4178f
commit a17ec488d9
4 changed files with 17 additions and 14 deletions

View File

@@ -1,6 +1,5 @@
# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0
# NOTE: unittest is by default sorting tests based on their names,
# so the order if which the tests are started may be different from
# the order in which they are defined. Please make sure all tests
@@ -9,7 +8,6 @@
# If test needs to change global state, it should return it to the
# original state after it's finished. For more information please see
# https://docs.python.org/3/library/unittest.html#organizing-test-code
import inspect
import os
import shutil
@@ -30,7 +28,8 @@ TOOLS_DIR = os.environ.get('IDF_TOOLS_PATH') or os.path.expanduser(idf_tools.IDF
PYTHON_DIR = os.path.join(TOOLS_DIR, 'python_env')
PYTHON_DIR_BACKUP = tempfile.mkdtemp()
REQ_SATISFIED = 'Python requirements are satisfied'
REQ_MISSING = "{}' - was not found and is required by the application"
# Python3.7 has a different error message that includes also "No package metadata was found for"
REQ_MISSING = r'.*Package was not found and is required by the application: (No package metadata was found for )?{}.*'
REQ_CORE = '- {}'.format(os.path.join(IDF_PATH, 'tools', 'requirements', 'requirements.core.txt'))
REQ_GDBGUI = '- {}'.format(os.path.join(IDF_PATH, 'tools', 'requirements', 'requirements.gdbgui.txt'))
CONSTR = 'Constraint file: {}/espidf.constraints'.format(TOOLS_DIR)
@@ -347,7 +346,7 @@ class TestCheckPythonDependencies(BasePythonInstall):
# check-python-dependencies should fail as the package was not installed yet
output = self.run_idf_tools(['check-python-dependencies'])
self.assertIn(REQ_MISSING.format('foopackage'), output)
self.assertRegex(output, REQ_MISSING.format('foopackage'))
self.assertNotIn(REQ_SATISFIED, output)
def test_dev_version(self): # type: () -> None