Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
65
tests/test_input_parser.py
Normal file
65
tests/test_input_parser.py
Normal file
@@ -0,0 +1,65 @@
|
||||
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,
|
||||
)
|
||||
Reference in New Issue
Block a user