release: nexus btpanel session fix and app-v2
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
"""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=".")
|
||||
Reference in New Issue
Block a user