Skip to content

Commit

Permalink
Merge pull request #678 from ddalcino/topic/ddalcino/test-install-sdk…
Browse files Browse the repository at this point in the history
…tool

Add tests for sdktool: install-tool and list-tool
  • Loading branch information
miurahr authored May 24, 2023
2 parents 9122616 + 7c0de86 commit fd01bc5
Show file tree
Hide file tree
Showing 10 changed files with 75 additions and 8 deletions.
3 changes: 2 additions & 1 deletion tests/data/linux-desktop-expect.json
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
"tools_ifw",
"tools_generic",
"tools_conan",
"tools_cmake"
"tools_cmake",
"sdktool"
]
}
1 change: 1 addition & 0 deletions tests/data/linux-desktop.html
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ <h1>Index of /online/qtsdkrepository/linux_x64/desktop</h1>
<tr><td valign="top">&nbsp;</td><td><a href="tools_generic/">tools_generic/</a></td><td align="right">13-Apr-2021 14:39 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_conan/">tools_conan/</a></td><td align="right">15-Feb-2021 12:14 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_cmake/">tools_cmake/</a></td><td align="right">07-Jan-2021 14:22 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="sdktool/">sdktool/</a></td><td align="right">05-May-2023 10:53 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_650_wasm_singlethread/">qt6_650_wasm_singlethread/</a></td><td align="right">01-Jan-2023 00:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_650_wasm_multithread/">qt6_650_wasm_multithread/</a></td><td align="right">01-Jan-2023 00:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_650_src_doc_examples/">qt6_650_src_doc_examples/</a></td><td align="right">01-Jan-2023 00:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
Expand Down
3 changes: 2 additions & 1 deletion tests/data/mac-desktop-expect.json
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
"tools_ifw",
"tools_generic",
"tools_conan",
"tools_cmake"
"tools_cmake",
"sdktool"
]
}
14 changes: 14 additions & 0 deletions tests/data/mac-desktop-sdktool-expect.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"modules": [
"qt.tools.qtcreator"
],
"long_listing": [
[
"qt.tools.qtcreator",
"10.0.1-0-202305050734",
"2023-05-05",
"SDKTool",
"SDKTool"
]
]
}
20 changes: 20 additions & 0 deletions tests/data/mac-desktop-sdktool-update.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<Updates>
<ApplicationName>{AnyApplication}</ApplicationName>
<ApplicationVersion>1.0.0</ApplicationVersion>
<Checksum>true</Checksum>
<PackageUpdate>
<Name>qt.tools.qtcreator</Name>
<DisplayName>SDKTool</DisplayName>
<Description>SDKTool</Description>
<Version>10.0.1-0-202305050734</Version>
<ReleaseDate>2023-05-05</ReleaseDate>
<Script>installscript.qs</Script>
<Virtual>true</Virtual>
<ForcedInstallation>true</ForcedInstallation>
<DownloadableArchives>qtcreator_sdktool.7z</DownloadableArchives>
<UpdateFile CompressedSize="1821889" UncompressedSize="6058248" OS="Any"/>
<SHA1>450d20347716f794124272a38d7cf46df9c50169</SHA1>
</PackageUpdate>
<SHA1>c6d6c9ff8b3c0a75f1bb1804eb4955a6409ac867</SHA1>
<MetadataName>2023-05-05-0734_meta.7z</MetadataName>
</Updates>
1 change: 1 addition & 0 deletions tests/data/mac-desktop.html
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ <h1>Index of /online/qtsdkrepository/mac_x64/desktop</h1>
<tr><td valign="top">&nbsp;</td><td><a href="tools_generic/">tools_generic/</a></td><td align="right">13-Apr-2021 14:39 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_conan/">tools_conan/</a></td><td align="right">15-Feb-2021 12:15 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_cmake/">tools_cmake/</a></td><td align="right">07-Jan-2021 14:22 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="sdktool/">sdktool/</a></td><td align="right">05-May-2023 10:53 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_650_wasm_singlethread/">qt6_650_wasm_singlethread/</a></td><td align="right">01-Jan-2023 00:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_650_wasm_multithread/">qt6_650_wasm_multithread/</a></td><td align="right">01-Jan-2023 00:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_650_src_doc_examples/">qt6_650_src_doc_examples/</a></td><td align="right">01-Jan-2023 00:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
Expand Down
3 changes: 2 additions & 1 deletion tests/data/windows-desktop-expect.json
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@
"tools_ifw",
"tools_generic",
"tools_conan",
"tools_cmake"
"tools_cmake",
"sdktool"
]
}
1 change: 1 addition & 0 deletions tests/data/windows-desktop.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ <h1>Index of /online/qtsdkrepository/windows_x86/desktop</h1>
<tr><td valign="top">&nbsp;</td><td><a href="tools_generic/">tools_generic/</a></td><td align="right">13-Apr-2021 14:39 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_conan/">tools_conan/</a></td><td align="right">15-Feb-2021 12:15 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_cmake/">tools_cmake/</a></td><td align="right">07-Jan-2021 14:22 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="sdktool/">sdktool/</a></td><td align="right">05-May-2023 10:53 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_650_wasm_singlethread/">qt6_650_wasm_singlethread/</a></td><td align="right">01-Jan-2023 00:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_650_wasm_multithread/">qt6_650_wasm_multithread/</a></td><td align="right">01-Jan-2023 00:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_650_src_doc_examples/">qt6_650_src_doc_examples/</a></td><td align="right">01-Jan-2023 00:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
Expand Down
17 changes: 17 additions & 0 deletions tests/test_install.py
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,23 @@ def tool_archive(host: str, tool_name: str, variant: str, date: datetime = datet
r"INFO : Time elapsed: .* second"
),
),
(
"install-tool linux desktop sdktool qt.tools.qtcreator".split(),
"linux",
"desktop",
"10.0.1-0-202305050734",
{"std": ""},
{"std": ""},
{"std": "linux_x64/desktop/sdktool/Updates.xml"},
{"std": [tool_archive("linux", "sdktool", "qt.tools.qtcreator")]},
re.compile(
r"^INFO : aqtinstall\(aqt\) v.* on Python 3.*\n"
r"INFO : Downloading qt.tools.qtcreator...\n"
r"Finished installation of sdktool-linux-qt.tools.qtcreator.7z in .*\n"
r"INFO : Finished installation\n"
r"INFO : Time elapsed: .* second"
),
),
(
"tool linux tools_qtcreator 1.2.3-0-197001020304 qt.tools.qtcreator".split(),
"linux",
Expand Down
20 changes: 15 additions & 5 deletions tests/test_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -1066,7 +1066,13 @@ def fetch_expected_tooldata(json_filename: str) -> ToolData:
return ToolData(tools)


@pytest.mark.parametrize("host, target, tool_name", (("mac", "desktop", "tools_cmake"),))
@pytest.mark.parametrize(
"host, target, tool_name",
(
("mac", "desktop", "tools_cmake"),
("mac", "desktop", "sdktool"),
),
)
def test_list_tool_cli(monkeypatch, capsys, host: str, target: str, tool_name: str):
html_file = f"{host}-{target}.html"
xml_file = f"{host}-{target}-{tool_name}-update.xml"
Expand All @@ -1084,35 +1090,39 @@ def _mock_fetch_http(_, rest_of_url, *args, **kwargs: str) -> str:
if not rest_of_url.endswith("Updates.xml"):
return htmltext
folder = urlparse(rest_of_url).path.split("/")[-2]
assert folder.startswith("tools_")
assert folder.startswith("tools_") or folder in ["sdktool"]
return xmltext

monkeypatch.setattr(MetadataFactory, "fetch_http", _mock_fetch_http)

cli = Cli()
cli.run(["list-tool", host, target])
out, err = capsys.readouterr()
assert not err
output_set = set(out.strip().split())
assert output_set == expected_tools

cli.run(["list-tool", host, target, tool_name])
out, err = capsys.readouterr()
assert not err
output_set = set(out.strip().split())
assert output_set == expected_tool_modules

# Test abbreviated tool name: "aqt list-tool mac desktop ifw"
assert tool_name.startswith("tools_")
short_tool_name = tool_name[6:]
assert tool_name.startswith("tools_") or tool_name in ["sdktool"]
short_tool_name = tool_name[6:] if tool_name.startswith("tools_") else tool_name
cli.run(["list-tool", host, target, short_tool_name])
out, err = capsys.readouterr()
assert not err
output_set = set(out.strip().split())
assert output_set == expected_tool_modules

cli.run(["list-tool", host, target, tool_name, "-l"])
out, err = capsys.readouterr()
assert not err

expected_tooldata = format(fetch_expected_tooldata(xml_expect))
assert out.strip() == expected_tooldata
assert out.strip() == expected_tooldata.strip()


def test_fetch_http_ok(monkeypatch):
Expand Down

0 comments on commit fd01bc5

Please sign in to comment.