def test_render_group() -> None: @render_group(fit=False) def renderable(): yield "one" yield "two" yield "three" # <- largest width of 5 yield "four" renderables = [renderable() for _ in range(4)] console = Console(width=42) min_width, _ = measure_renderables(console, renderables, 42) assert min_width == 42
def __rich_measure__(self, console: Console, max_width: int) -> Measurement: width = 0 for backend in self.backends.values(): panel = Panel.fit( Backend(backend.used, backend.available), box=box.SQUARE, title=emojify_device(backend.device), ) size = measure_renderables(console, console.options, [panel]) width += size.minimum width += len(self.backends) - 1 return Measurement(width, width)
def test_render_group_fit() -> None: @group() def renderable(): yield "one" yield "two" yield "three" # <- largest width of 5 yield "four" renderables = [renderable() for _ in range(4)] console = Console(width=42) min_width, _ = measure_renderables(console, console.options, renderables) assert min_width == 5
def test_measure_renderables(): # Test measure_renderables returning a null Measurement object assert measure_renderables(Console(), None, None) == Measurement(0, 0) # Test measure_renderables returning a valid Measurement object assert measure_renderables(Console(width=1), ["test"], 1) == Measurement(1, 1)
def __rich_measure__(self, console: Console, max_width: int) -> Measurement: return measure_renderables(console, console.options, [Text("⬛" * self.total)])
def test_measure_renderables(): console = Console() assert measure_renderables(console, console.options, "") == Measurement(0, 0) assert measure_renderables(console, console.options.update_width(0), "hello") == Measurement(0, 0)