Testing FileProxy Output Management in Textualize/Rich
This test suite validates the FileProxy class functionality in the Rich library, focusing on file writing operations, byte handling, and newline management. The tests ensure proper integration between the Console and file output mechanisms.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
textualize/rich
tests/test_file_proxy.py
import io
import sys
import pytest
from rich.console import Console
from rich.file_proxy import FileProxy
def test_empty_bytes():
console = Console()
file_proxy = FileProxy(console, sys.stdout)
# File should raise TypeError when writing bytes
with pytest.raises(TypeError):
file_proxy.write(b"") # type: ignore
with pytest.raises(TypeError):
file_proxy.write(b"foo") # type: ignore
def test_flush():
file = io.StringIO()
console = Console(file=file)
file_proxy = FileProxy(console, file)
file_proxy.write("foo")
assert file.getvalue() == ""
file_proxy.flush()
assert file.getvalue() == "foo
"
def test_new_lines():
file = io.StringIO()
console = Console(file=file)
file_proxy = FileProxy(console, file)
file_proxy.write("-
-")
assert file.getvalue() == "-
"
file_proxy.flush()
assert file.getvalue() == "-
-
"