mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-25 21:36:52 +08:00
67 lines
1.8 KiB
Python
67 lines
1.8 KiB
Python
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
from openhands.runtime.utils import files
|
|
|
|
SANDBOX_PATH_PREFIX = '/workspace'
|
|
CONTAINER_PATH = '/workspace'
|
|
HOST_PATH = 'workspace'
|
|
|
|
|
|
def test_resolve_path():
|
|
assert (
|
|
files.resolve_path('test.txt', '/workspace', HOST_PATH, CONTAINER_PATH)
|
|
== Path(HOST_PATH) / 'test.txt'
|
|
)
|
|
assert (
|
|
files.resolve_path('subdir/test.txt', '/workspace', HOST_PATH, CONTAINER_PATH)
|
|
== Path(HOST_PATH) / 'subdir' / 'test.txt'
|
|
)
|
|
assert (
|
|
files.resolve_path(
|
|
Path(SANDBOX_PATH_PREFIX) / 'test.txt',
|
|
'/workspace',
|
|
HOST_PATH,
|
|
CONTAINER_PATH,
|
|
)
|
|
== Path(HOST_PATH) / 'test.txt'
|
|
)
|
|
assert (
|
|
files.resolve_path(
|
|
Path(SANDBOX_PATH_PREFIX) / 'subdir' / 'test.txt',
|
|
'/workspace',
|
|
HOST_PATH,
|
|
CONTAINER_PATH,
|
|
)
|
|
== Path(HOST_PATH) / 'subdir' / 'test.txt'
|
|
)
|
|
assert (
|
|
files.resolve_path(
|
|
Path(SANDBOX_PATH_PREFIX) / 'subdir' / '..' / 'test.txt',
|
|
'/workspace',
|
|
HOST_PATH,
|
|
CONTAINER_PATH,
|
|
)
|
|
== Path(HOST_PATH) / 'test.txt'
|
|
)
|
|
with pytest.raises(PermissionError):
|
|
files.resolve_path(
|
|
Path(SANDBOX_PATH_PREFIX) / '..' / 'test.txt',
|
|
'/workspace',
|
|
HOST_PATH,
|
|
CONTAINER_PATH,
|
|
)
|
|
with pytest.raises(PermissionError):
|
|
files.resolve_path(
|
|
Path('..') / 'test.txt', '/workspace', HOST_PATH, CONTAINER_PATH
|
|
)
|
|
with pytest.raises(PermissionError):
|
|
files.resolve_path(
|
|
Path('/') / 'test.txt', '/workspace', HOST_PATH, CONTAINER_PATH
|
|
)
|
|
assert (
|
|
files.resolve_path('test.txt', '/workspace/test', HOST_PATH, CONTAINER_PATH)
|
|
== Path(HOST_PATH) / 'test' / 'test.txt'
|
|
)
|