Tools: idf_tools.py prints URL before starting the download

This helps users with poor Internet connection to be able to cancel the
download and download it in another way.

Closes https://github.com/espressif/esp-idf/issues/8625
This commit is contained in:
Roland Dobai
2022-03-30 08:11:18 +02:00
committed by Anton Maklakov
parent a3ab8da720
commit ec78f2546f

View File

@@ -5,6 +5,7 @@
import json import json
import os import os
import re
import shutil import shutil
import sys import sys
import tempfile import tempfile
@@ -111,13 +112,13 @@ class TestUsage(unittest.TestCase):
if tool_archive_name is None: if tool_archive_name is None:
tool_archive_name = tool tool_archive_name = tool
self.assertIn('Installing %s@' % tool + tool_version, output) self.assertIn('Installing %s@' % tool + tool_version, output)
self.assertIn('Downloading %s' % tool_archive_name, output) self.assertRegex(output, re.compile(rf'Downloading \S+/{tool_archive_name}'))
def assert_tool_not_installed(self, output, tool, tool_version, tool_archive_name=None): def assert_tool_not_installed(self, output, tool, tool_version, tool_archive_name=None):
if tool_archive_name is None: if tool_archive_name is None:
tool_archive_name = tool tool_archive_name = tool
self.assertNotIn('Installing %s@' % tool + tool_version, output) self.assertNotIn('Installing %s@' % tool + tool_version, output)
self.assertNotIn('Downloading %s' % tool_archive_name, output) self.assertNotRegex(output, re.compile(rf'Downloading \S+/{tool_archive_name}'))
def run_idf_tools_with_action(self, action): def run_idf_tools_with_action(self, action):
output_stream = StringIO() output_stream = StringIO()
@@ -152,7 +153,7 @@ class TestUsage(unittest.TestCase):
self.assert_tool_installed(output, XTENSA_ESP32S3_ELF, XTENSA_ESP32S3_ELF_VERSION) self.assert_tool_installed(output, XTENSA_ESP32S3_ELF, XTENSA_ESP32S3_ELF_VERSION)
self.assert_tool_installed(output, ESP32ULP, ESP32ULP_VERSION, ESP32ULP_ARCHIVE) self.assert_tool_installed(output, ESP32ULP, ESP32ULP_VERSION, ESP32ULP_ARCHIVE)
self.assert_tool_installed(output, ESP32S2ULP, ESP32S2ULP_VERSION, ESP32S2ULP_ARCHIVE) self.assert_tool_installed(output, ESP32S2ULP, ESP32S2ULP_VERSION, ESP32S2ULP_ARCHIVE)
self.assertIn('to ' + os.path.join(self.temp_tools_dir, 'dist'), output) self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
self.assertEqual(required_tools_installed, output.count('Done')) self.assertEqual(required_tools_installed, output.count('Done'))
output = self.run_idf_tools_with_action(['check']) output = self.run_idf_tools_with_action(['check'])
@@ -190,7 +191,7 @@ class TestUsage(unittest.TestCase):
self.assert_tool_not_installed(output, XTENSA_ESP32S2_ELF, XTENSA_ESP32S2_ELF_VERSION) self.assert_tool_not_installed(output, XTENSA_ESP32S2_ELF, XTENSA_ESP32S2_ELF_VERSION)
self.assert_tool_not_installed(output, XTENSA_ESP32S3_ELF, XTENSA_ESP32S3_ELF_VERSION) self.assert_tool_not_installed(output, XTENSA_ESP32S3_ELF, XTENSA_ESP32S3_ELF_VERSION)
self.assert_tool_not_installed(output, ESP32S2ULP, ESP32S2ULP_VERSION, ESP32S2ULP_ARCHIVE) self.assert_tool_not_installed(output, ESP32S2ULP, ESP32S2ULP_VERSION, ESP32S2ULP_ARCHIVE)
self.assertIn('to ' + os.path.join(self.temp_tools_dir, 'dist'), output) self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
self.assertEqual(required_tools_installed, output.count('Done')) self.assertEqual(required_tools_installed, output.count('Done'))
output = self.run_idf_tools_with_action(['check']) output = self.run_idf_tools_with_action(['check'])
@@ -224,7 +225,7 @@ class TestUsage(unittest.TestCase):
self.assert_tool_not_installed(output, XTENSA_ESP32S3_ELF, XTENSA_ESP32S3_ELF_VERSION) self.assert_tool_not_installed(output, XTENSA_ESP32S3_ELF, XTENSA_ESP32S3_ELF_VERSION)
self.assert_tool_not_installed(output, ESP32ULP, ESP32ULP_VERSION, ESP32ULP_ARCHIVE) self.assert_tool_not_installed(output, ESP32ULP, ESP32ULP_VERSION, ESP32ULP_ARCHIVE)
self.assert_tool_not_installed(output, ESP32S2ULP, ESP32S2ULP_VERSION, ESP32S2ULP_ARCHIVE) self.assert_tool_not_installed(output, ESP32S2ULP, ESP32S2ULP_VERSION, ESP32S2ULP_ARCHIVE)
self.assertIn('to ' + os.path.join(self.temp_tools_dir, 'dist'), output) self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
self.assertEqual(required_tools_installed, output.count('Done')) self.assertEqual(required_tools_installed, output.count('Done'))
output = self.run_idf_tools_with_action(['check']) output = self.run_idf_tools_with_action(['check'])
@@ -257,7 +258,7 @@ class TestUsage(unittest.TestCase):
self.assert_tool_not_installed(output, XTENSA_ESP32S3_ELF, XTENSA_ESP32S3_ELF_VERSION) self.assert_tool_not_installed(output, XTENSA_ESP32S3_ELF, XTENSA_ESP32S3_ELF_VERSION)
self.assert_tool_not_installed(output, ESP32ULP, ESP32ULP_VERSION, ESP32ULP_ARCHIVE) self.assert_tool_not_installed(output, ESP32ULP, ESP32ULP_VERSION, ESP32ULP_ARCHIVE)
self.assert_tool_installed(output, ESP32S2ULP, ESP32S2ULP_VERSION, ESP32S2ULP_ARCHIVE) self.assert_tool_installed(output, ESP32S2ULP, ESP32S2ULP_VERSION, ESP32S2ULP_ARCHIVE)
self.assertIn('to ' + os.path.join(self.temp_tools_dir, 'dist'), output) self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
self.assertEqual(required_tools_installed, output.count('Done')) self.assertEqual(required_tools_installed, output.count('Done'))
output = self.run_idf_tools_with_action(['check']) output = self.run_idf_tools_with_action(['check'])
@@ -291,7 +292,7 @@ class TestUsage(unittest.TestCase):
self.assert_tool_not_installed(output, XTENSA_ESP32S2_ELF, XTENSA_ESP32S2_ELF_VERSION) self.assert_tool_not_installed(output, XTENSA_ESP32S2_ELF, XTENSA_ESP32S2_ELF_VERSION)
self.assert_tool_not_installed(output, ESP32ULP, ESP32ULP_VERSION, ESP32ULP_ARCHIVE) self.assert_tool_not_installed(output, ESP32ULP, ESP32ULP_VERSION, ESP32ULP_ARCHIVE)
self.assert_tool_installed(output, ESP32S2ULP, ESP32S2ULP_VERSION, ESP32S2ULP_ARCHIVE) self.assert_tool_installed(output, ESP32S2ULP, ESP32S2ULP_VERSION, ESP32S2ULP_ARCHIVE)
self.assertIn('to ' + os.path.join(self.temp_tools_dir, 'dist'), output) self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
self.assertEqual(required_tools_installed, output.count('Done')) self.assertEqual(required_tools_installed, output.count('Done'))
output = self.run_idf_tools_with_action(['check']) output = self.run_idf_tools_with_action(['check'])