mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
Merge branch 'main' into move-child-no-op
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -36,3 +36,33 @@ async def test_hover_update_styles():
|
||||
# We've hovered, so ensure the pseudoclass is present and background changed
|
||||
assert button.pseudo_classes == {"enabled", "hover"}
|
||||
assert button.styles.background != initial_background
|
||||
|
||||
|
||||
def test_setting_title():
|
||||
app = MyApp()
|
||||
app.title = None
|
||||
assert app.title == "None"
|
||||
|
||||
app.title = ""
|
||||
assert app.title == ""
|
||||
|
||||
app.title = 0.125
|
||||
assert app.title == "0.125"
|
||||
|
||||
app.title = [True, False, 2]
|
||||
assert app.title == "[True, False, 2]"
|
||||
|
||||
|
||||
def test_setting_sub_title():
|
||||
app = MyApp()
|
||||
app.sub_title = None
|
||||
assert app.sub_title == "None"
|
||||
|
||||
app.sub_title = ""
|
||||
assert app.sub_title == ""
|
||||
|
||||
app.sub_title = 0.125
|
||||
assert app.sub_title == "0.125"
|
||||
|
||||
app.sub_title = [True, False, 2]
|
||||
assert app.sub_title == "[True, False, 2]"
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from fractions import Fraction
|
||||
from itertools import chain
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -122,3 +123,22 @@ def test_resolve_fraction_unit():
|
||||
Fraction(32),
|
||||
resolve_dimension="width",
|
||||
) == Fraction(2)
|
||||
|
||||
|
||||
def test_resolve_issue_2502():
|
||||
"""Test https://github.com/Textualize/textual/issues/2502"""
|
||||
|
||||
widget = Widget()
|
||||
widget.styles.width = "1fr"
|
||||
widget.styles.min_width = 11
|
||||
|
||||
assert isinstance(
|
||||
resolve_fraction_unit(
|
||||
(widget.styles,),
|
||||
Size(80, 24),
|
||||
Size(80, 24),
|
||||
Fraction(10),
|
||||
resolve_dimension="width",
|
||||
),
|
||||
Fraction,
|
||||
)
|
||||
|
||||
@@ -78,6 +78,20 @@ async def test_tree_node_expanded_message() -> None:
|
||||
assert pilot.app.messages == [("NodeExpanded", "test-tree")]
|
||||
|
||||
|
||||
async def tree_node_expanded_by_code_message() -> None:
|
||||
"""Expanding a node via the API should result in an expanded message being posted."""
|
||||
async with TreeApp().run_test() as pilot:
|
||||
pilot.app.query_one(Tree).root.children[0].expand()
|
||||
assert pilot.app.messages == [("NodeExpanded", "test-tree")]
|
||||
|
||||
|
||||
async def tree_node_all_expanded_by_code_message() -> None:
|
||||
"""Expanding all nodes via the API should result in expanded messages being posted."""
|
||||
async with TreeApp().run_test() as pilot:
|
||||
pilot.app.query_one(Tree).root.children[0].expand_all()
|
||||
assert pilot.app.messages == [("NodeExpanded", "test-tree")]
|
||||
|
||||
|
||||
async def test_tree_node_collapsed_message() -> None:
|
||||
"""Collapsing a node should result in a collapsed message being emitted."""
|
||||
async with TreeApp().run_test() as pilot:
|
||||
@@ -89,6 +103,46 @@ async def test_tree_node_collapsed_message() -> None:
|
||||
]
|
||||
|
||||
|
||||
async def tree_node_collapsed_by_code_message() -> None:
|
||||
"""Collapsing a node via the API should result in a collapsed message being posted."""
|
||||
async with TreeApp().run_test() as pilot:
|
||||
pilot.app.query_one(Tree).root.children[0].expand().collapse()
|
||||
assert pilot.app.messages == [
|
||||
("NodeExpanded", "test-tree"),
|
||||
("NodeCollapsed", "test-tree"),
|
||||
]
|
||||
|
||||
|
||||
async def tree_node_all_collapsed_by_code_message() -> None:
|
||||
"""Collapsing all nodes via the API should result in collapsed messages being posted."""
|
||||
async with TreeApp().run_test() as pilot:
|
||||
pilot.app.query_one(Tree).root.children[0].expand_all().collapse_all()
|
||||
assert pilot.app.messages == [
|
||||
("NodeExpanded", "test-tree"),
|
||||
("NodeCollapsed", "test-tree"),
|
||||
]
|
||||
|
||||
|
||||
async def tree_node_toggled_by_code_message() -> None:
|
||||
"""Toggling a node twice via the API should result in expanded and collapsed messages."""
|
||||
async with TreeApp().run_test() as pilot:
|
||||
pilot.app.query_one(Tree).root.children[0].toggle().toggle()
|
||||
assert pilot.app.messages == [
|
||||
("NodeExpanded", "test-tree"),
|
||||
("NodeCollapsed", "test-tree"),
|
||||
]
|
||||
|
||||
|
||||
async def tree_node_all_toggled_by_code_message() -> None:
|
||||
"""Toggling all nodes twice via the API should result in expanded and collapsed messages."""
|
||||
async with TreeApp().run_test() as pilot:
|
||||
pilot.app.query_one(Tree).root.children[0].toggle_all().toggle_all()
|
||||
assert pilot.app.messages == [
|
||||
("NodeExpanded", "test-tree"),
|
||||
("NodeCollapsed", "test-tree"),
|
||||
]
|
||||
|
||||
|
||||
async def test_tree_node_highlighted_message() -> None:
|
||||
"""Highlighting a node should result in a highlighted message being emitted."""
|
||||
async with TreeApp().run_test() as pilot:
|
||||
|
||||
Reference in New Issue
Block a user