test_fileops.py 1.1 KB

123456789101112131415161718192021
  1. from opendevin import config
  2. from opendevin.action import fileop
  3. from pathlib import Path
  4. import pytest
  5. def test_resolve_path():
  6. assert fileop.resolve_path('test.txt') == Path(config.get('WORKSPACE_BASE')) / 'test.txt'
  7. assert fileop.resolve_path('subdir/test.txt') == Path(config.get('WORKSPACE_BASE')) / 'subdir' / 'test.txt'
  8. assert fileop.resolve_path(Path(fileop.SANDBOX_PATH_PREFIX) / 'test.txt') == \
  9. Path(config.get('WORKSPACE_BASE')) / 'test.txt'
  10. assert fileop.resolve_path(Path(fileop.SANDBOX_PATH_PREFIX) / 'subdir' / 'test.txt') == \
  11. Path(config.get('WORKSPACE_BASE')) / 'subdir' / 'test.txt'
  12. assert fileop.resolve_path(Path(fileop.SANDBOX_PATH_PREFIX) / 'subdir' / '..' / 'test.txt') == \
  13. Path(config.get('WORKSPACE_BASE')) / 'test.txt'
  14. with pytest.raises(PermissionError):
  15. fileop.resolve_path(Path(fileop.SANDBOX_PATH_PREFIX) / '..' / 'test.txt')
  16. with pytest.raises(PermissionError):
  17. fileop.resolve_path(Path('..') / 'test.txt')
  18. with pytest.raises(PermissionError):
  19. fileop.resolve_path(Path('/') / 'test.txt')