mirror of
https://github.com/miurahr/aqtinstall.git
synced 2025-12-18 05:04:38 +03:00
Improve warning messages re: unknown aqt arguments
This improves the warnings about unknown versions, modules, and architectures of Qt, so that it is more explicit what the message actually means. This changes the purpose of `Cli._check_modules_arg` from checking if modules exist in combinations.json, to returning a list of modules that do not exist in that file. The function has been renamed as well. This change was necessary to make the warning message more informative.
This commit is contained in:
@@ -257,13 +257,14 @@ class Cli:
|
|||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _check_modules_arg(self, qt_version, modules):
|
def _select_unexpected_modules(self, qt_version: str, modules: Optional[List[str]]) -> List[str]:
|
||||||
|
"""Returns a sorted list of all the requested modules that do not exist in the combinations.json file."""
|
||||||
if modules is None:
|
if modules is None:
|
||||||
return True
|
return []
|
||||||
available = Settings.available_modules(qt_version)
|
available = Settings.available_modules(qt_version)
|
||||||
if available is None:
|
if available is None:
|
||||||
return False
|
return sorted(modules)
|
||||||
return all([m in available for m in modules])
|
return sorted(set(modules) - set(available))
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _determine_qt_version(
|
def _determine_qt_version(
|
||||||
@@ -388,14 +389,23 @@ class Cli:
|
|||||||
auto_desktop_archives: List[QtPackage] = get_auto_desktop_archives()
|
auto_desktop_archives: List[QtPackage] = get_auto_desktop_archives()
|
||||||
|
|
||||||
if not self._check_qt_arg_versions(qt_version):
|
if not self._check_qt_arg_versions(qt_version):
|
||||||
self.logger.warning("Specified Qt version is unknown: {}.".format(qt_version))
|
self.logger.warning(
|
||||||
|
f'Specified Qt version "{qt_version}" did not exist when this version of aqtinstall was released. '
|
||||||
|
"This may not install properly, but we will try our best."
|
||||||
|
)
|
||||||
if not self._check_qt_arg_combination(qt_version, os_name, target, arch):
|
if not self._check_qt_arg_combination(qt_version, os_name, target, arch):
|
||||||
self.logger.warning(
|
self.logger.warning(
|
||||||
"Specified target combination is not valid or unknown: {} {} {}".format(os_name, target, arch)
|
f'Specified target combination "{os_name} {target} {arch}" did not exist when this version of '
|
||||||
|
"aqtinstall was released. This may not install properly, but we will try our best."
|
||||||
)
|
)
|
||||||
all_extra = True if modules is not None and "all" in modules else False
|
all_extra = True if modules is not None and "all" in modules else False
|
||||||
if not all_extra and not self._check_modules_arg(qt_version, modules):
|
if not all_extra:
|
||||||
self.logger.warning("Some of specified modules are unknown.")
|
unexpected_modules = self._select_unexpected_modules(qt_version, modules)
|
||||||
|
if unexpected_modules:
|
||||||
|
self.logger.warning(
|
||||||
|
f"Specified modules {unexpected_modules} did not exist when this version of aqtinstall was released. "
|
||||||
|
"This may not install properly, but we will try our best."
|
||||||
|
)
|
||||||
|
|
||||||
qt_archives: QtArchives = retry_on_bad_connection(
|
qt_archives: QtArchives = retry_on_bad_connection(
|
||||||
lambda base_url: QtArchives(
|
lambda base_url: QtArchives(
|
||||||
@@ -465,7 +475,10 @@ class Cli:
|
|||||||
archives = args.archives
|
archives = args.archives
|
||||||
all_extra = True if modules is not None and "all" in modules else False
|
all_extra = True if modules is not None and "all" in modules else False
|
||||||
if not self._check_qt_arg_versions(qt_version):
|
if not self._check_qt_arg_versions(qt_version):
|
||||||
self.logger.warning("Specified Qt version is unknown: {}.".format(qt_version))
|
self.logger.warning(
|
||||||
|
f'Specified Qt version "{qt_version}" did not exist when this version of aqtinstall was released. '
|
||||||
|
"This may not install properly, but we will try our best."
|
||||||
|
)
|
||||||
|
|
||||||
srcdocexamples_archives: SrcDocExamplesArchives = retry_on_bad_connection(
|
srcdocexamples_archives: SrcDocExamplesArchives = retry_on_bad_connection(
|
||||||
lambda base_url: SrcDocExamplesArchives(
|
lambda base_url: SrcDocExamplesArchives(
|
||||||
@@ -562,7 +575,10 @@ class Cli:
|
|||||||
|
|
||||||
for arch in archs:
|
for arch in archs:
|
||||||
if not self._check_tools_arg_combination(os_name, tool_name, arch):
|
if not self._check_tools_arg_combination(os_name, tool_name, arch):
|
||||||
self.logger.warning("Specified target combination is not valid: {} {} {}".format(os_name, tool_name, arch))
|
self.logger.warning(
|
||||||
|
f'Specified target combination "{os_name} {tool_name} {arch}" did not exist when this version of '
|
||||||
|
"aqtinstall was released. This may not install properly, but we will try our best."
|
||||||
|
)
|
||||||
|
|
||||||
tool_archives: ToolArchives = retry_on_bad_connection(
|
tool_archives: ToolArchives = retry_on_bad_connection(
|
||||||
lambda base_url: ToolArchives(
|
lambda base_url: ToolArchives(
|
||||||
|
|||||||
@@ -53,13 +53,20 @@ def test_cli_help(capsys):
|
|||||||
assert expected_help(out)
|
assert expected_help(out)
|
||||||
|
|
||||||
|
|
||||||
def test_cli_check_module():
|
@pytest.mark.parametrize(
|
||||||
|
"qt_version, modules, unexpected_modules",
|
||||||
|
(
|
||||||
|
("5.11.3", ["qtcharts", "qtwebengine"], []),
|
||||||
|
("5.11.3", ["not_exist"], ["not_exist"]),
|
||||||
|
("5.11.3", ["qtcharts", "qtwebengine", "not_exist"], ["not_exist"]),
|
||||||
|
("5.11.3", None, []),
|
||||||
|
("5.15.0", ["Unknown"], ["Unknown"]),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
def test_cli_select_unexpected_modules(qt_version: str, modules: Optional[List[str]], unexpected_modules: List[str]):
|
||||||
cli = Cli()
|
cli = Cli()
|
||||||
cli._setup_settings()
|
cli._setup_settings()
|
||||||
assert cli._check_modules_arg("5.11.3", ["qtcharts", "qtwebengine"])
|
assert cli._select_unexpected_modules(qt_version, modules) == unexpected_modules
|
||||||
assert not cli._check_modules_arg("5.7", ["not_exist"])
|
|
||||||
assert cli._check_modules_arg("5.14.0", None)
|
|
||||||
assert not cli._check_modules_arg("5.15.0", ["Unknown"])
|
|
||||||
|
|
||||||
|
|
||||||
def test_cli_check_combination():
|
def test_cli_check_combination():
|
||||||
|
|||||||
@@ -1052,7 +1052,8 @@ def test_install(
|
|||||||
(
|
(
|
||||||
"install-qt windows desktop 5.16.0 win32_mingw73",
|
"install-qt windows desktop 5.16.0 win32_mingw73",
|
||||||
None,
|
None,
|
||||||
"WARNING : Specified Qt version is unknown: 5.16.0.\n"
|
'WARNING : Specified Qt version "5.16.0" did not exist when this version of aqtinstall was released. '
|
||||||
|
"This may not install properly, but we will try our best.\n"
|
||||||
"ERROR : Failed to locate XML data for Qt version '5.16.0'.\n"
|
"ERROR : Failed to locate XML data for Qt version '5.16.0'.\n"
|
||||||
"==============================Suggested follow-up:==============================\n"
|
"==============================Suggested follow-up:==============================\n"
|
||||||
"* Please use 'aqt list-qt windows desktop' to show versions available.\n",
|
"* Please use 'aqt list-qt windows desktop' to show versions available.\n",
|
||||||
@@ -1060,7 +1061,8 @@ def test_install(
|
|||||||
(
|
(
|
||||||
"install-qt windows desktop 5.15.0 bad_arch",
|
"install-qt windows desktop 5.15.0 bad_arch",
|
||||||
"windows-5150-update.xml",
|
"windows-5150-update.xml",
|
||||||
"WARNING : Specified target combination is not valid or unknown: windows desktop bad_arch\n"
|
'WARNING : Specified target combination "windows desktop bad_arch" did not exist when this version of '
|
||||||
|
"aqtinstall was released. This may not install properly, but we will try our best.\n"
|
||||||
"ERROR : The packages ['qt_base'] were not found while parsing XML of package information!\n"
|
"ERROR : The packages ['qt_base'] were not found while parsing XML of package information!\n"
|
||||||
"==============================Suggested follow-up:==============================\n"
|
"==============================Suggested follow-up:==============================\n"
|
||||||
"* Please use 'aqt list-qt windows desktop --arch 5.15.0' to show architectures available.\n",
|
"* Please use 'aqt list-qt windows desktop --arch 5.15.0' to show architectures available.\n",
|
||||||
@@ -1068,7 +1070,8 @@ def test_install(
|
|||||||
(
|
(
|
||||||
"install-qt windows desktop 5.15.0 win32_mingw73 -m nonexistent foo",
|
"install-qt windows desktop 5.15.0 win32_mingw73 -m nonexistent foo",
|
||||||
"windows-5150-update.xml",
|
"windows-5150-update.xml",
|
||||||
"WARNING : Some of specified modules are unknown.\n"
|
"WARNING : Specified modules ['foo', 'nonexistent'] did not exist when this version of aqtinstall "
|
||||||
|
"was released. This may not install properly, but we will try our best.\n"
|
||||||
"ERROR : The packages ['foo', 'nonexistent', 'qt_base'] were not found"
|
"ERROR : The packages ['foo', 'nonexistent', 'qt_base'] were not found"
|
||||||
" while parsing XML of package information!\n"
|
" while parsing XML of package information!\n"
|
||||||
"==============================Suggested follow-up:==============================\n"
|
"==============================Suggested follow-up:==============================\n"
|
||||||
@@ -1106,7 +1109,8 @@ def test_install(
|
|||||||
(
|
(
|
||||||
"install-tool windows desktop tools_vcredist nonexistent",
|
"install-tool windows desktop tools_vcredist nonexistent",
|
||||||
"windows-desktop-tools_vcredist-update.xml",
|
"windows-desktop-tools_vcredist-update.xml",
|
||||||
"WARNING : Specified target combination is not valid: windows tools_vcredist nonexistent\n"
|
'WARNING : Specified target combination "windows tools_vcredist nonexistent" did not exist when this version of '
|
||||||
|
"aqtinstall was released. This may not install properly, but we will try our best.\n"
|
||||||
"ERROR : The package 'nonexistent' was not found while parsing XML of package information!\n"
|
"ERROR : The package 'nonexistent' was not found while parsing XML of package information!\n"
|
||||||
"==============================Suggested follow-up:==============================\n"
|
"==============================Suggested follow-up:==============================\n"
|
||||||
"* Please use 'aqt list-tool windows desktop tools_vcredist' to show tool variants available.\n",
|
"* Please use 'aqt list-tool windows desktop tools_vcredist' to show tool variants available.\n",
|
||||||
@@ -1114,7 +1118,8 @@ def test_install(
|
|||||||
(
|
(
|
||||||
"install-tool windows desktop tools_nonexistent nonexistent",
|
"install-tool windows desktop tools_nonexistent nonexistent",
|
||||||
None,
|
None,
|
||||||
"WARNING : Specified target combination is not valid: windows tools_nonexistent nonexistent\n"
|
'WARNING : Specified target combination "windows tools_nonexistent nonexistent" did not exist when this '
|
||||||
|
"version of aqtinstall was released. This may not install properly, but we will try our best.\n"
|
||||||
"ERROR : Failed to locate XML data for the tool 'tools_nonexistent'.\n"
|
"ERROR : Failed to locate XML data for the tool 'tools_nonexistent'.\n"
|
||||||
"==============================Suggested follow-up:==============================\n"
|
"==============================Suggested follow-up:==============================\n"
|
||||||
"* Please use 'aqt list-tool windows desktop' to show tools available.\n",
|
"* Please use 'aqt list-tool windows desktop' to show tools available.\n",
|
||||||
|
|||||||
Reference in New Issue
Block a user