Imposta backup robocopy su share Windows
This commit is contained in:
@@ -2,7 +2,12 @@ from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from bakrest.backup import _build_rsync_command, _split_existing_files
|
||||
from bakrest.backup import (
|
||||
_build_robocopy_command,
|
||||
_build_rsync_command,
|
||||
_robocopy_destination_dir,
|
||||
_split_existing_files,
|
||||
)
|
||||
from bakrest.config import parse_config
|
||||
from bakrest.registry import ChangeEvent
|
||||
|
||||
@@ -50,3 +55,43 @@ def test_build_rsync_command_uses_files_from(tmp_path: Path) -> None:
|
||||
assert "--relative" in command
|
||||
assert any(part.startswith("--files-from=") for part in command)
|
||||
assert command[-1] == "user@host:/backup/"
|
||||
|
||||
|
||||
def test_build_robocopy_command_preserves_path_under_include_root(tmp_path: Path) -> None:
|
||||
source = tmp_path / "Lavori"
|
||||
nested = source / "Cliente" / "Grafica"
|
||||
nested.mkdir(parents=True)
|
||||
image = nested / "image.psd"
|
||||
image.write_text("ok", encoding="utf-8")
|
||||
config = parse_config(
|
||||
{
|
||||
"watch": {
|
||||
"include_dirs": [str(source)],
|
||||
"include_extensions": [".psd"],
|
||||
"exclude_dirs": [],
|
||||
"exclude_patterns": [],
|
||||
},
|
||||
"backup": {
|
||||
"engine": "robocopy",
|
||||
"robocopy_path": "robocopy",
|
||||
"remote_destinations": ["\\\\server\\Backup1", "\\\\server\\Backup2"],
|
||||
"server_check": {"type": "tcp", "port": 445, "interval_seconds": 300, "timeout_seconds": 1},
|
||||
},
|
||||
},
|
||||
tmp_path / "config.toml",
|
||||
)
|
||||
|
||||
destination = _robocopy_destination_dir(config, image, Path("\\\\server\\Backup1"))
|
||||
command = _build_robocopy_command(
|
||||
config,
|
||||
ChangeEvent(path=str(image), event_type="modified"),
|
||||
"\\\\server\\Backup1",
|
||||
)
|
||||
|
||||
assert destination == Path("\\\\server\\Backup1") / "Lavori" / "Cliente" / "Grafica"
|
||||
assert command[0] == "robocopy"
|
||||
assert command[1] == str(nested)
|
||||
assert command[2] == str(destination)
|
||||
assert command[3] == "image.psd"
|
||||
assert "/MIR" not in command
|
||||
assert "/PURGE" not in command
|
||||
|
||||
Reference in New Issue
Block a user