mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
Move test_styles into css test folder
This commit is contained in:
128
tests/css/test_styles.py
Normal file
128
tests/css/test_styles.py
Normal file
@@ -0,0 +1,128 @@
|
||||
from rich.color import Color
|
||||
from rich.style import Style
|
||||
|
||||
from textual.css.styles import Styles, RenderStyles
|
||||
|
||||
|
||||
def test_styles_reset():
|
||||
styles = Styles()
|
||||
styles.text_style = "not bold"
|
||||
assert styles.text_style == Style(bold=False)
|
||||
styles.reset()
|
||||
assert styles.text_style is Style.null()
|
||||
|
||||
|
||||
def test_has_rule():
|
||||
styles = Styles()
|
||||
assert not styles.has_rule("text_style")
|
||||
styles.text_style = "bold"
|
||||
assert styles.has_rule("text_style")
|
||||
styles.text_style = None
|
||||
assert not styles.has_rule("text_style")
|
||||
|
||||
|
||||
def test_clear_rule():
|
||||
styles = Styles()
|
||||
styles.text_style = "bold"
|
||||
assert styles.has_rule("text_style")
|
||||
styles.clear_rule("text_style")
|
||||
assert not styles.has_rule("text_style")
|
||||
|
||||
|
||||
def test_get_rules():
|
||||
styles = Styles()
|
||||
# Empty rules at start
|
||||
assert styles.get_rules() == {}
|
||||
styles.text_style = "bold"
|
||||
assert styles.get_rules() == {"text_style": Style.parse("bold")}
|
||||
styles.display = "none"
|
||||
assert styles.get_rules() == {
|
||||
"text_style": Style.parse("bold"),
|
||||
"display": "none",
|
||||
}
|
||||
|
||||
|
||||
def test_set_rule():
|
||||
styles = Styles()
|
||||
assert styles.get_rules() == {}
|
||||
styles.set_rule("text_style", Style.parse("bold"))
|
||||
assert styles.get_rules() == {"text_style": Style.parse("bold")}
|
||||
|
||||
|
||||
def test_reset():
|
||||
styles = Styles()
|
||||
assert styles.get_rules() == {}
|
||||
styles.set_rule("text_style", Style.parse("bold"))
|
||||
assert styles.get_rules() == {"text_style": Style.parse("bold")}
|
||||
styles.reset()
|
||||
assert styles.get_rules() == {}
|
||||
|
||||
|
||||
def test_merge():
|
||||
styles = Styles()
|
||||
styles.set_rule("text_style", Style.parse("bold"))
|
||||
styles2 = Styles()
|
||||
styles2.set_rule("display", "none")
|
||||
styles.merge(styles2)
|
||||
assert styles.get_rules() == {
|
||||
"text_style": Style.parse("bold"),
|
||||
"display": "none",
|
||||
}
|
||||
|
||||
|
||||
def test_merge_rules():
|
||||
styles = Styles()
|
||||
styles.set_rule("text_style", Style.parse("bold"))
|
||||
styles.merge_rules({"display": "none"})
|
||||
assert styles.get_rules() == {
|
||||
"text_style": Style.parse("bold"),
|
||||
"display": "none",
|
||||
}
|
||||
|
||||
|
||||
def test_render_styles_text():
|
||||
"""Test inline styles override base styles"""
|
||||
base = Styles()
|
||||
inline = Styles()
|
||||
styles_view = RenderStyles(None, base, inline)
|
||||
|
||||
# Both styles are empty
|
||||
assert styles_view.text == Style()
|
||||
|
||||
# Base is bold blue
|
||||
base.text_color = "blue"
|
||||
base.text_style = "bold"
|
||||
assert styles_view.text == Style.parse("bold blue")
|
||||
|
||||
# Base is bold blue, inline is red
|
||||
inline.text_color = "red"
|
||||
assert styles_view.text == Style.parse("bold red")
|
||||
|
||||
# Base is bold yellow, inline is red
|
||||
base.text_color = "yellow"
|
||||
assert styles_view.text == Style.parse("bold red")
|
||||
|
||||
# Base is bold blue
|
||||
inline.text_color = None
|
||||
assert styles_view.text == Style.parse("bold yellow")
|
||||
|
||||
|
||||
def test_render_styles_border():
|
||||
base = Styles()
|
||||
inline = Styles()
|
||||
styles_view = RenderStyles(None, base, inline)
|
||||
|
||||
base.border_top = ("heavy", "red")
|
||||
# Base has border-top: heavy red
|
||||
assert styles_view.border_top == ("heavy", Color.parse("red"))
|
||||
|
||||
inline.border_left = ("rounded", "green")
|
||||
# Base has border-top heavy red, inline has border-left: rounded green
|
||||
assert styles_view.border_top == ("heavy", Color.parse("red"))
|
||||
assert styles_view.border_left == ("rounded", Color.parse("green"))
|
||||
assert styles_view.border == (
|
||||
("heavy", Color.parse("red")),
|
||||
("", Color.default()),
|
||||
("", Color.default()),
|
||||
("rounded", Color.parse("green")),
|
||||
)
|
||||
Reference in New Issue
Block a user