mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
title descriptors (#2213)
* title descriptors * add extra line around titles * changelog * snapshots * comment * Fix border refresh * simplify typing * test for None case
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -2,6 +2,7 @@ import pytest
|
||||
from rich.console import Console
|
||||
from rich.segment import Segment
|
||||
from rich.style import Style
|
||||
from rich.text import Text
|
||||
|
||||
from textual._border import render_border_label, render_row
|
||||
from textual.widget import Widget
|
||||
@@ -37,6 +38,11 @@ def test_border_title_single_line():
|
||||
"""The border_title gets set to a single line even when multiple lines are provided."""
|
||||
widget = Widget()
|
||||
|
||||
assert widget.border_title is None
|
||||
|
||||
widget.border_title = None
|
||||
assert widget.border_title == None
|
||||
|
||||
widget.border_title = ""
|
||||
assert widget.border_title == ""
|
||||
|
||||
@@ -50,7 +56,10 @@ def test_border_title_single_line():
|
||||
assert widget.border_title == "Sorry you "
|
||||
|
||||
widget.border_title = "[red]This also \n works with markup \n involved.[/]"
|
||||
assert widget.border_title == "[red]This also "
|
||||
assert widget.border_title == "[red]This also [/red]"
|
||||
|
||||
widget.border_title = Text.from_markup("[bold]Hello World")
|
||||
assert widget.border_title == "[bold]Hello World[/bold]"
|
||||
|
||||
|
||||
def test_border_subtitle_single_line():
|
||||
@@ -70,7 +79,10 @@ def test_border_subtitle_single_line():
|
||||
assert widget.border_subtitle == "Sorry you "
|
||||
|
||||
widget.border_subtitle = "[red]This also \n works with markup \n involved.[/]"
|
||||
assert widget.border_subtitle == "[red]This also "
|
||||
assert widget.border_subtitle == "[red]This also [/red]"
|
||||
|
||||
widget.border_subtitle = Text.from_markup("[bold]Hello World")
|
||||
assert widget.border_subtitle == "[bold]Hello World[/bold]"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
@@ -93,7 +105,7 @@ def test_render_border_label_empty_label_skipped(
|
||||
|
||||
assert [] == list(
|
||||
render_border_label(
|
||||
"",
|
||||
Text(""),
|
||||
True,
|
||||
"round",
|
||||
width,
|
||||
@@ -130,7 +142,7 @@ def test_render_border_label_skipped_if_narrow(
|
||||
|
||||
assert [] == list(
|
||||
render_border_label(
|
||||
label,
|
||||
Text.from_markup(label),
|
||||
True,
|
||||
"round",
|
||||
width,
|
||||
@@ -168,7 +180,7 @@ def test_render_border_label_wide_plain(label: str):
|
||||
True,
|
||||
True,
|
||||
)
|
||||
left, original_text, right = render_border_label(label, *args)
|
||||
left, original_text, right = render_border_label(Text.from_markup(label), *args)
|
||||
|
||||
assert left == _BLANK_SEGMENT
|
||||
assert right == _BLANK_SEGMENT
|
||||
@@ -188,7 +200,7 @@ def test_render_border_empty_text_with_markup(label: str):
|
||||
"""Test label rendering if there is no text but some markup."""
|
||||
assert [] == list(
|
||||
render_border_label(
|
||||
label,
|
||||
Text.from_markup(label),
|
||||
True,
|
||||
"round",
|
||||
999,
|
||||
@@ -210,7 +222,7 @@ def test_render_border_label():
|
||||
|
||||
# Implicit test on the number of segments returned:
|
||||
blank1, what, is_up, with_you, blank2 = render_border_label(
|
||||
label,
|
||||
Text.from_markup(label),
|
||||
True,
|
||||
"round",
|
||||
9999,
|
||||
@@ -239,7 +251,7 @@ def test_render_border_label():
|
||||
assert with_you == expected_with_you
|
||||
|
||||
blank1, what, blank2 = render_border_label(
|
||||
label,
|
||||
Text.from_markup(label),
|
||||
True,
|
||||
"round",
|
||||
5 + 4, # 5 where "What…" fits + 2 for the blank spaces + 2 for the corners.
|
||||
|
||||
Reference in New Issue
Block a user