Deploy drhider / validate (push) Canceled after 0s
- Update upload/ module to v0.2.2 with modular Layer 1 (FilePicker) and Layer 2 (Streaming transit upload) - Replace legacy manual file table in site/templates/index.html with FilePicker.initFilePicker - Wire uploadViaVM with per-file status updates and abort signal support - Add dist bundles to dist/ and site/static/dist/ with routes in site/routes/main_bp.py - Add test_hardening.py and test_safe_name.py from upload-platform - Bump version to 0.0.78 in site/app.py - Document integration plan and report in History/upload-integration/
18 lines
602 B
Python
18 lines
602 B
Python
import pytest
|
|
from upload.backend.upload_refs.safe_name import safe_name
|
|
|
|
|
|
def test_safe_name_simple():
|
|
assert safe_name("test.txt") == "test.txt"
|
|
assert safe_name("folder/subfolder/file.pdf") == "folder/subfolder/file.pdf"
|
|
assert safe_name("folder\\subfolder\\file.pdf") == "folder/subfolder/file.pdf"
|
|
|
|
|
|
def test_safe_name_traversal():
|
|
assert safe_name("../etc/passwd") == ""
|
|
assert safe_name("folder/../../etc/passwd") == ""
|
|
assert safe_name("/root/file.txt") == "root/file.txt"
|
|
assert safe_name("..") == ""
|
|
assert safe_name("") == ""
|
|
assert safe_name(None) == ""
|