mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 05:48:36 +08:00
28 lines
1.5 KiB
Python
28 lines
1.5 KiB
Python
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
from opendevin import config
|
|
from opendevin.action import fileop
|
|
from opendevin.schema import ConfigType
|
|
|
|
|
|
def test_resolve_path():
|
|
assert fileop.resolve_path('test.txt', '/workspace') == Path(config.get(ConfigType.WORKSPACE_BASE)) / 'test.txt'
|
|
assert fileop.resolve_path('subdir/test.txt', '/workspace') == \
|
|
Path(config.get(ConfigType.WORKSPACE_BASE)) / 'subdir' / 'test.txt'
|
|
assert fileop.resolve_path(Path(fileop.SANDBOX_PATH_PREFIX) / 'test.txt', '/workspace') == \
|
|
Path(config.get(ConfigType.WORKSPACE_BASE)) / 'test.txt'
|
|
assert fileop.resolve_path(Path(fileop.SANDBOX_PATH_PREFIX) / 'subdir' / 'test.txt',
|
|
'/workspace') == Path(config.get(ConfigType.WORKSPACE_BASE)) / 'subdir' / 'test.txt'
|
|
assert fileop.resolve_path(Path(fileop.SANDBOX_PATH_PREFIX) / 'subdir' / '..' / 'test.txt',
|
|
'/workspace') == Path(config.get(ConfigType.WORKSPACE_BASE)) / 'test.txt'
|
|
with pytest.raises(PermissionError):
|
|
fileop.resolve_path(Path(fileop.SANDBOX_PATH_PREFIX) / '..' / 'test.txt', '/workspace')
|
|
with pytest.raises(PermissionError):
|
|
fileop.resolve_path(Path('..') / 'test.txt', '/workspace')
|
|
with pytest.raises(PermissionError):
|
|
fileop.resolve_path(Path('/') / 'test.txt', '/workspace')
|
|
assert fileop.resolve_path('test.txt', '/workspace/test') == \
|
|
Path(config.get(ConfigType.WORKSPACE_BASE)) / 'test' / 'test.txt'
|