diff --git a/tests/test_install.py b/tests/test_install.py index 0fbe6c1..6284914 100644 --- a/tests/test_install.py +++ b/tests/test_install.py @@ -91,13 +91,14 @@ class MockArchive: version: str = "" arch_dir: str = "" should_install: bool = True + date: datetime = datetime.now() def xml_package_update(self) -> str: return textwrap.dedent( f"""\ {self.update_xml_name} - {self.version}-0-{datetime.now().strftime("%Y%m%d%H%M")} + {self.version}-0-{self.date.strftime("%Y%m%d%H%M")} none {self.filename_7z} """ @@ -253,9 +254,65 @@ def plain_qtbase_archive(update_xml_name: str, arch: str, should_install: bool = ) +def tool_archive(host: str, tool_name: str, variant: str, date: datetime = datetime.now()) -> MockArchive: + return MockArchive( + filename_7z=f"{tool_name}-{host}-{variant}.7z", + update_xml_name=variant, + contents=( + PatchedFile( + filename=f"bin/{tool_name}-{variant}.exe", + unpatched_content="Some executable binary file", + patched_content=None, # it doesn't get patched + ), + ), + should_install=True, + date=date, + ) + + @pytest.mark.parametrize( "cmd, host, target, version, arch, arch_dir, updates_url, archives, expect_out", ( + ( + "install-tool linux desktop tools_qtcreator qt.tools.qtcreator".split(), + "linux", + "desktop", + "1.2.3-0-197001020304", + "", + "", + "linux_x64/desktop/tools_qtcreator/Updates.xml", + [ + tool_archive("linux", "tools_qtcreator", "qt.tools.qtcreator"), + ], + re.compile( + r"^aqtinstall\(aqt\) v.* on Python 3.*\n" + r"Downloading qt.tools.qtcreator...\n" + r"Finished installation of tools_qtcreator-linux-qt.tools.qtcreator.7z in .*\n" + r"Finished installation\n" + r"Time elapsed: .* second" + ), + ), + ( + "tool linux tools_qtcreator 1.2.3-0-197001020304 qt.tools.qtcreator".split(), + "linux", + "desktop", + "1.2.3", + "", + "", + "linux_x64/desktop/tools_qtcreator/Updates.xml", + [ + tool_archive("linux", "tools_qtcreator", "qt.tools.qtcreator", datetime(1970, 1, 2, 3, 4, 5, 6)), + ], + re.compile( + r"^aqtinstall\(aqt\) v.* on Python 3.*\n" + r"Warning: The command 'tool' is deprecated and marked for removal in a future version of aqt.\n" + r"In the future, please use the command 'install-tool' instead.\n" + r"Downloading qt.tools.qtcreator...\n" + r"Finished installation of tools_qtcreator-linux-qt.tools.qtcreator.7z in .*\n" + r"Finished installation\n" + r"Time elapsed: .* second" + ), + ), ( "install 5.14.0 windows desktop win32_mingw73".split(), "windows",