76 lines
2.2 KiB
Python
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)
|