47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
import asyncio
|
|
from unittest.mock import MagicMock
|
|
|
|
import pytest
|
|
|
|
from tools.files import read_file, write_file
|
|
|
|
|
|
@pytest.mark.unit
|
|
async def test_read_file_with_no_sandbox():
|
|
"""Test read_file handles missing sandbox."""
|
|
result = await read_file("test.txt", sandbox=None)
|
|
assert "error" in result.lower()
|
|
|
|
|
|
@pytest.mark.integration
|
|
async def test_real_write_then_read():
|
|
"""Integration: Write file, then read it back."""
|
|
from sandbox.session import PodmanSandbox
|
|
|
|
async with PodmanSandbox() as sb:
|
|
# Write
|
|
result = await write_file("test.txt", "Hello, world!", sb)
|
|
assert "✓" in result
|
|
|
|
# Read back
|
|
content = await read_file("test.txt", sb)
|
|
assert "Hello, world!" in content
|
|
|
|
# Cleanup
|
|
await asyncio.to_thread(sb.run, "rm test.txt")
|
|
|
|
|
|
@pytest.mark.integration
|
|
async def test_real_write_creates_directories():
|
|
"""Integration: write_file creates parent directories."""
|
|
from sandbox.session import PodmanSandbox
|
|
|
|
async with PodmanSandbox() as sb:
|
|
result = await write_file("dir1/dir2/test.txt", "nested", sb)
|
|
assert "✓" in result
|
|
|
|
# Verify file exists
|
|
ls_result = await asyncio.to_thread(sb.run, "ls -R")
|
|
assert "dir1" in ls_result
|
|
assert "dir2" in ls_result
|