mirror of
https://github.com/macaodha/batdetect2.git
synced 2026-07-07 21:00:10 +02:00
59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
"""Behavior-focused tests for top-level CLI command discovery."""
|
|
|
|
from pathlib import Path
|
|
|
|
from click.testing import CliRunner
|
|
|
|
from batdetect2.cli import cli
|
|
|
|
|
|
BASE_DIR = Path(__file__).parent.parent.parent
|
|
|
|
|
|
def test_cli_base_help_lists_main_commands() -> None:
|
|
"""User story: discover available workflows from top-level help."""
|
|
|
|
result = CliRunner().invoke(cli, ["--help"])
|
|
|
|
assert result.exit_code == 0
|
|
assert "--log-file" in result.output
|
|
assert "process" in result.output
|
|
assert "train" in result.output
|
|
assert "evaluate" in result.output
|
|
assert "data" in result.output
|
|
assert "detect" in result.output
|
|
|
|
|
|
def test_cli_writes_logs_to_file_and_terminal(
|
|
tmp_path: Path,
|
|
tiny_checkpoint_path: Path,
|
|
) -> None:
|
|
"""User story: save CLI logs to a file while keeping terminal output."""
|
|
|
|
output_dir = tmp_path / "eval_out"
|
|
log_file = tmp_path / "logs" / "cli.log"
|
|
|
|
result = CliRunner().invoke(
|
|
cli,
|
|
[
|
|
"--log-file",
|
|
str(log_file),
|
|
"-v",
|
|
"evaluate",
|
|
str(BASE_DIR / "example_data" / "dataset.yaml"),
|
|
"--model",
|
|
str(tiny_checkpoint_path),
|
|
"--base-dir",
|
|
str(BASE_DIR),
|
|
"--workers",
|
|
"0",
|
|
"--output-dir",
|
|
str(output_dir),
|
|
],
|
|
)
|
|
|
|
assert result.exit_code == 0
|
|
assert "Initiating evaluation process..." in result.output
|
|
assert log_file.exists()
|
|
assert "Initiating evaluation process..." in log_file.read_text()
|