Files
e2b-dev--e2b/packages/python-sdk/tests/sync/sandbox_sync/files/test_info.py
T
2026-07-13 12:47:58 +08:00

76 lines
2.2 KiB
Python

import pytest
from e2b.exceptions import FileNotFoundException
from e2b import Sandbox, FileType
def test_get_info_of_file(sandbox: Sandbox):
filename = "test_file.txt"
sandbox.files.write(filename, "test")
info = sandbox.files.get_info(filename)
current_path = sandbox.commands.run("pwd")
assert info.name == filename
assert info.type == FileType.FILE
assert info.path == f"{current_path.stdout.strip()}/{filename}"
assert info.size == 4
assert info.mode == 0o644
assert info.permissions == "-rw-r--r--"
assert info.owner == "user"
assert info.group == "user"
assert info.modified_time is not None
assert info.modified_time.tzinfo is not None
def test_get_info_of_nonexistent_file(sandbox: Sandbox):
filename = "test_does_not_exist.txt"
with pytest.raises(FileNotFoundException):
sandbox.files.get_info(filename)
def test_get_info_of_directory(sandbox: Sandbox):
dirname = "test_dir"
sandbox.files.make_dir(dirname)
info = sandbox.files.get_info(dirname)
current_path = sandbox.commands.run("pwd")
assert info.name == dirname
assert info.type == FileType.DIR
assert info.path == f"{current_path.stdout.strip()}/{dirname}"
assert info.size > 0
assert info.mode == 0o755
assert info.permissions == "drwxr-xr-x"
assert info.owner == "user"
assert info.group == "user"
assert info.modified_time is not None
assert info.modified_time.tzinfo is not None
def test_get_info_of_nonexistent_directory(sandbox: Sandbox):
dirname = "test_does_not_exist_dir"
with pytest.raises(FileNotFoundException):
sandbox.files.get_info(dirname)
def test_file_symlink(sandbox: Sandbox):
test_dir = "test-simlink-entry"
file_name = "test.txt"
content = "Hello, World!"
sandbox.files.make_dir(test_dir)
sandbox.files.write(f"{test_dir}/{file_name}", content)
symlink_name = "symlink_to_test.txt"
sandbox.commands.run(f"ln -s {file_name} {symlink_name}", cwd=test_dir)
file = sandbox.files.get_info(f"{test_dir}/{symlink_name}")
pwd = sandbox.commands.run("pwd")
assert file.type == FileType.FILE
assert file.symlink_target == f"{pwd.stdout.strip()}/{test_dir}/{file_name}"
sandbox.files.remove(test_dir)