tree tests

This commit is contained in:
Will McGugan 2021-01-09 14:10:07 +00:00
parent 59c6eaed7f
commit f80601a93e
2 changed files with 53 additions and 11 deletions

View File

@ -40,17 +40,6 @@ class Segment(NamedTuple):
"""Get cell length of segment."""
return 0 if self.is_control else cell_len(self.text)
def with_style(self, style: Style) -> "Segment":
"""Get a copy of the segment with a new style.
Args:
style (Style): New style to set.
Returns:
Segment: New segment instance.
"""
return Segment(self.text, style, self.is_control)
@classmethod
def control(cls, text: str, style: Optional[Style] = None) -> "Segment":
"""Create a Segment with control codes.

53
tests/test_tree.py Normal file
View File

@ -0,0 +1,53 @@
from rich.console import Console
from rich.tree import Tree
def test_render_single_node():
tree = Tree("foo")
console = Console(color_system=None, width=20)
console.begin_capture()
console.print(tree)
assert console.end_capture() == "foo \n"
def test_render_single_branch():
tree = Tree("foo")
tree.add("bar")
console = Console(color_system=None, width=20)
console.begin_capture()
console.print(tree)
result = console.end_capture()
print(repr(result))
expected = "foo \n└── bar \n"
assert result == expected
def test_render_double_branch():
tree = Tree("foo")
tree.add("bar")
tree.add("baz")
console = Console(color_system=None, width=20)
console.begin_capture()
console.print(tree)
result = console.end_capture()
print(repr(result))
expected = "foo \n├── bar \n└── baz \n"
assert result == expected
def test_render_ascii():
tree = Tree("foo")
tree.add("bar")
tree.add("baz")
class AsciiConsole(Console):
@property
def encoding(self):
return "ascii"
console = AsciiConsole(color_system=None, width=20)
console.begin_capture()
console.print(tree)
result = console.end_capture()
expected = "foo \n+-- bar \n`-- baz \n"
assert result == expected