Files
Nexus/tests/test_schema_path_validators.py
T

62 lines
1.4 KiB
Python
Raw Normal View History

"""Schema-level path validation (P2)."""
import pytest
from pydantic import ValidationError
from server.api.schemas import (
FileDecompress,
FileOperation,
ServerCreate,
ServerUpdate,
SyncFiles,
SyncBrowse,
)
def test_server_create_target_path_normalizes():
m = ServerCreate(
name="s1",
domain="1.2.3.4",
target_path="/www/wwwroot/foo/",
)
assert m.target_path == "/www/wwwroot/foo"
def test_server_create_rejects_backslash():
with pytest.raises(ValidationError):
ServerCreate(name="s1", domain="1.2.3.4", target_path=r"\www\site")
def test_server_update_optional_target_path():
m = ServerUpdate(target_path=None)
assert m.target_path is None
def test_sync_browse_root():
m = SyncBrowse(server_id=1, path="/")
assert m.path == "/"
def test_sync_files_source_nexus_path():
m = SyncFiles(
server_ids=[1],
source_path="/tmp/nexus_upload_abc",
target_path="/www/wwwroot/site",
)
assert m.source_path == "/tmp/nexus_upload_abc"
assert m.target_path == "/www/wwwroot/site"
def test_file_operation_paths():
m = FileOperation(
server_id=1,
operation="mkdir",
path="/www/wwwroot/newdir",
)
assert m.path == "/www/wwwroot/newdir"
def test_file_decompress_rejects_dot_dest():
with pytest.raises(ValidationError):
FileDecompress(server_id=1, path="/tmp/a.tar.gz", dest=".")