fix: single load in remove, use dataclasses.replace in config_cmd, add remove-running test

This commit is contained in:
2026-05-21 12:45:08 +08:00
parent 9e9ba66f1f
commit 2bb08e92c7
2 changed files with 19 additions and 10 deletions

View File

@@ -1,7 +1,10 @@
import os
import pytest
from datetime import datetime, timezone
from click.testing import CliRunner
from autossh_mgr.cli import cli
from autossh_mgr.config import load_tunnels, save_tunnels
from autossh_mgr.process import write_pid_file
@pytest.fixture(autouse=True)
@@ -126,3 +129,12 @@ def test_config_invalid_type(runner, config_dir, sample_tunnel):
save_tunnels(config_dir, [sample_tunnel])
result = runner.invoke(cli, ["config", "web-service", "port", "notanumber"])
assert result.exit_code != 0
def test_remove_running_tunnel_fails(runner, config_dir, sample_tunnel):
save_tunnels(config_dir, [sample_tunnel])
write_pid_file(config_dir, "web-service", os.getpid(), datetime.now(timezone.utc))
result = runner.invoke(cli, ["remove", "web-service"], input="y\n")
assert result.exit_code != 0
assert "Stop" in result.output
assert len(load_tunnels(config_dir)) == 1