Testing Column Layout Rendering Implementation in Textualize/rich
This test suite validates the Columns component functionality in the Rich library, focusing on various column layout configurations and rendering options. The tests verify column formatting, expansion, directionality, and width constraints.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
textualize/rich
tests/test_columns.py
# encoding=utf-8
import io
from rich.columns import Columns
from rich.console import Console
COLUMN_DATA = [
"Ursus americanus",
"American buffalo",
"Bison bison",
"American crow",
"Corvus brachyrhynchos",
"American marten",
"Martes americana",
"American racer",
"Coluber constrictor",
"American woodcock",
"Scolopax minor",
"Anaconda (unidentified)",
"Eunectes sp.",
"Andean goose",
"Chloephaga melanoptera",
"Ant",
"Anteater, australian spiny",
"Tachyglossus aculeatus",
"Anteater, giant",
]
def render():
console = Console(file=io.StringIO(), width=100, legacy_windows=False)
console.rule("empty")
empty_columns = Columns([])
console.print(empty_columns)
columns = Columns(COLUMN_DATA)
columns.add_renderable("Myrmecophaga tridactyla")
console.rule("optimal")
console.print(columns)
console.rule("optimal, expand")
columns.expand = True
console.print(columns)
console.rule("column first, optimal")
columns.column_first = True
columns.expand = False
console.print(columns)
console.rule("column first, right to left")
columns.right_to_left = True
console.print(columns)
console.rule("equal columns, expand")
columns.equal = True
columns.expand = True
console.print(columns)
console.rule("fixed width")
columns.width = 16
columns.expand = False
console.print(columns)
console.print()
render_result = console.file.getvalue()
return render_result
def test_render():
expected = "────────────────────────────────────────────── empty ───────────────────────────────────────────────
───────────────────────────────────────────── optimal ──────────────────────────────────────────────
Ursus americanus American buffalo Bison bison American crow
Corvus brachyrhynchos American marten Martes americana American racer
Coluber constrictor American woodcock Scolopax minor Anaconda (unidentified)
Eunectes sp. Andean goose Chloephaga melanoptera Ant
Anteater, australian spiny Tachyglossus aculeatus Anteater, giant Myrmecophaga tridactyla
───────────────────────────────────────── optimal, expand ──────────────────────────────────────────
Ursus americanus American buffalo Bison bison American crow
Corvus brachyrhynchos American marten Martes americana American racer
Coluber constrictor American woodcock Scolopax minor Anaconda (unidentified)
Eunectes sp. Andean goose Chloephaga melanoptera Ant
Anteater, australian spiny Tachyglossus aculeatus Anteater, giant Myrmecophaga tridactyla
────────────────────────────────────── column first, optimal ───────────────────────────────────────
Ursus americanus American marten Scolopax minor Ant
American buffalo Martes americana Anaconda (unidentified) Anteater, australian spiny
Bison bison American racer Eunectes sp. Tachyglossus aculeatus
American crow Coluber constrictor Andean goose Anteater, giant
Corvus brachyrhynchos American woodcock Chloephaga melanoptera Myrmecophaga tridactyla
─────────────────────────────────── column first, right to left ────────────────────────────────────
Ant Scolopax minor American marten Ursus americanus
Anteater, australian spiny Anaconda (unidentified) Martes americana American buffalo
Tachyglossus aculeatus Eunectes sp. American racer Bison bison
Anteater, giant Andean goose Coluber constrictor American crow
Myrmecophaga tridactyla Chloephaga melanoptera American woodcock Corvus brachyrhynchos
────────────────────────────────────── equal columns, expand ───────────────────────────────────────
Chloephaga melanoptera American racer Ursus americanus
Ant Coluber constrictor American buffalo
Anteater, australian spiny American woodcock Bison bison
Tachyglossus aculeatus Scolopax minor American crow
Anteater, giant Anaconda (unidentified) Corvus brachyrhynchos
Myrmecophaga tridactyla Eunectes sp. American marten
Andean goose Martes americana
─────────────────────────────────────────── fixed width ────────────────────────────────────────────
Anteater, Eunectes sp. Coluber Corvus Ursus americanus
australian spiny constrictor brachyrhynchos
Tachyglossus Andean goose American American marten American buffalo
aculeatus woodcock
Anteater, giant Chloephaga Scolopax minor Martes americana Bison bison
melanoptera
Myrmecophaga Ant Anaconda American racer American crow
tridactyla (unidentified)
"
assert render() == expected
if __name__ == "__main__":
result = render()
print(result)
print(repr(result))