Some checks failed
CI / test (push) Failing after 1s
Co-authored-by: Copilot <copilot@github.com>
66 lines
1.8 KiB
Python
66 lines
1.8 KiB
Python
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
from tai.input_parser import InputValidationError, build_request
|
|
|
|
|
|
def test_build_request_normalizes_values() -> None:
|
|
req = build_request(
|
|
issue=" apache fails to start ",
|
|
host=" web01 ",
|
|
port=5566,
|
|
target_paths=["/etc/apache2", "~/logs"],
|
|
identity_file="~/.ssh/id_ed25519",
|
|
jump_host=" bastion01 ",
|
|
ignore_ssh_config=True,
|
|
)
|
|
|
|
assert req.issue == "apache fails to start"
|
|
assert req.host == "web01"
|
|
assert req.port == 5566
|
|
assert req.target_paths[0] == Path("/etc/apache2")
|
|
assert req.target_paths[1] == Path("~/logs").expanduser()
|
|
assert req.identity_file == Path("~/.ssh/id_ed25519").expanduser()
|
|
assert req.jump_host == "bastion01"
|
|
assert req.ignore_ssh_config is True
|
|
|
|
|
|
def test_build_request_rejects_empty_issue() -> None:
|
|
with pytest.raises(InputValidationError):
|
|
build_request(
|
|
issue=" ",
|
|
host="web01",
|
|
port=22,
|
|
target_paths=[],
|
|
identity_file=None,
|
|
jump_host=None,
|
|
ignore_ssh_config=False,
|
|
)
|
|
|
|
|
|
def test_build_request_rejects_empty_host() -> None:
|
|
with pytest.raises(InputValidationError):
|
|
build_request(
|
|
issue="apache down",
|
|
host=" ",
|
|
port=22,
|
|
target_paths=[],
|
|
identity_file=None,
|
|
jump_host=None,
|
|
ignore_ssh_config=False,
|
|
)
|
|
|
|
|
|
def test_build_request_rejects_invalid_port() -> None:
|
|
with pytest.raises(InputValidationError):
|
|
build_request(
|
|
issue="apache down",
|
|
host="web01",
|
|
port=70000,
|
|
target_paths=[],
|
|
identity_file=None,
|
|
jump_host=None,
|
|
ignore_ssh_config=False,
|
|
)
|