mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
Set classes (#2160)
* Setting classes * changelog * docstrings * test bad identifiers * Update CHANGELOG.md Co-authored-by: Dave Pearson <davep@davep.org> * Add return of self --------- Co-authored-by: Dave Pearson <davep@davep.org>
This commit is contained in:
@@ -45,6 +45,39 @@ def test_validate():
|
||||
node.toggle_class("1")
|
||||
|
||||
|
||||
def test_classes_setter():
|
||||
node = DOMNode(classes="foo bar")
|
||||
assert node.classes == frozenset({"foo", "bar"})
|
||||
node.classes = "baz egg"
|
||||
assert node.classes == frozenset({"baz", "egg"})
|
||||
node.classes = ""
|
||||
assert node.classes == frozenset({})
|
||||
|
||||
|
||||
def test_classes_setter_iterable():
|
||||
node = DOMNode(classes="foo bar")
|
||||
assert node.classes == frozenset({"foo", "bar"})
|
||||
node.classes = "baz", "egg"
|
||||
assert node.classes == frozenset({"baz", "egg"})
|
||||
node.classes = []
|
||||
assert node.classes == frozenset({})
|
||||
|
||||
|
||||
def test_classes_set_classes():
|
||||
node = DOMNode(classes="foo bar")
|
||||
assert node.classes == frozenset({"foo", "bar"})
|
||||
node.set_classes("baz egg")
|
||||
assert node.classes == frozenset({"baz", "egg"})
|
||||
node.set_classes([])
|
||||
assert node.classes == frozenset({})
|
||||
node.set_classes(["paul"])
|
||||
assert node.classes == frozenset({"paul"})
|
||||
with pytest.raises(BadIdentifier):
|
||||
node.classes = "foo 25"
|
||||
with pytest.raises(BadIdentifier):
|
||||
node.classes = ["foo", "25"]
|
||||
|
||||
|
||||
def test_inherited_bindings():
|
||||
"""Test if binding merging is done correctly when (not) inheriting bindings."""
|
||||
|
||||
|
||||
@@ -152,6 +152,25 @@ def test_query_classes():
|
||||
# Now, let's check there are *no* children with the test class.
|
||||
assert len(app.query(".test")) == 0
|
||||
|
||||
# Add classes via set_classes
|
||||
app.query(ClassTest).set_classes("foo bar")
|
||||
assert (len(app.query(".foo"))) == CHILD_COUNT
|
||||
assert (len(app.query(".bar"))) == CHILD_COUNT
|
||||
|
||||
# Reset classes
|
||||
app.query(ClassTest).set_classes("")
|
||||
assert (len(app.query(".foo"))) == 0
|
||||
assert (len(app.query(".bar"))) == 0
|
||||
|
||||
# Repeat, to check setting empty iterable
|
||||
app.query(ClassTest).set_classes("foo bar")
|
||||
assert (len(app.query(".foo"))) == CHILD_COUNT
|
||||
assert (len(app.query(".bar"))) == CHILD_COUNT
|
||||
|
||||
app.query(ClassTest).set_classes([])
|
||||
assert (len(app.query(".foo"))) == 0
|
||||
assert (len(app.query(".bar"))) == 0
|
||||
|
||||
# Add the test class to everything and then check again.
|
||||
app.query(ClassTest).add_class("test")
|
||||
assert len(app.query(".test")) == CHILD_COUNT
|
||||
|
||||
Reference in New Issue
Block a user