Add test for invalid versions

This test checks that when a user inputs an invalid version string
when running the installer, aqt detects the error and asks the user to
fix it, rather than raising `ValueError`.
This commit is contained in:
David Dalcino
2021-07-01 11:43:30 -07:00
parent 47388066f7
commit 049be1cfca

View File

@@ -1,3 +1,9 @@
import re
import sys
import pytest
from semantic_version import Version
import aqt
@@ -51,6 +57,35 @@ def test_cli_check_version():
assert not cli._check_qt_arg_versions("5.12")
@pytest.mark.parametrize(
"invalid_version",
("5.15", "five-dot-fifteen", "5"),
)
def test_cli_invalid_version(capsys, invalid_version):
"""Checks that invalid version strings are handled properly"""
# Ensure that invalid_version cannot be a Version
with pytest.raises(ValueError):
Version(invalid_version)
cli = aqt.installer.Cli()
cli._setup_settings()
with pytest.raises(SystemExit) as pytest_wrapped_e:
cli = aqt.installer.Cli()
cli.run(["install", invalid_version, "mac", "desktop"])
assert pytest_wrapped_e.type == SystemExit
assert pytest_wrapped_e.value.code == 1
out, err = capsys.readouterr()
sys.stdout.write(out)
sys.stderr.write(err)
matcher = re.compile(
r"^aqtinstall\(aqt\) v.* on Python 3.*\n"
r".*Invalid version: '" + invalid_version + r"'! Please use the form '5\.X\.Y'\.\n.*"
)
assert matcher.match(err)
def test_cli_check_mirror():
cli = aqt.installer.Cli()
cli._setup_settings()