mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
Add regression test for #1814.
This commit is contained in:
45
tests/test_message_handling.py
Normal file
45
tests/test_message_handling.py
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
from textual.app import App, ComposeResult
|
||||||
|
from textual.message import Message
|
||||||
|
from textual.widget import Widget
|
||||||
|
|
||||||
|
|
||||||
|
async def test_message_inheritance_namespace():
|
||||||
|
"""Inherited messages get their correct namespaces.
|
||||||
|
|
||||||
|
Regression test for https://github.com/Textualize/textual/issues/1814.
|
||||||
|
"""
|
||||||
|
|
||||||
|
class BaseWidget(Widget):
|
||||||
|
class Fired(Message):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def trigger(self) -> None:
|
||||||
|
self.post_message(self.Fired())
|
||||||
|
|
||||||
|
class Left(BaseWidget):
|
||||||
|
class Fired(BaseWidget.Fired):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class Right(BaseWidget):
|
||||||
|
class Fired(BaseWidget.Fired):
|
||||||
|
pass
|
||||||
|
|
||||||
|
handlers_called = []
|
||||||
|
|
||||||
|
class MessageInheritanceApp(App[None]):
|
||||||
|
def compose(self) -> ComposeResult:
|
||||||
|
yield Left()
|
||||||
|
yield Right()
|
||||||
|
|
||||||
|
def on_left_fired(self):
|
||||||
|
handlers_called.append("left")
|
||||||
|
|
||||||
|
def on_right_fired(self):
|
||||||
|
handlers_called.append("right")
|
||||||
|
|
||||||
|
app = MessageInheritanceApp()
|
||||||
|
async with app.run_test():
|
||||||
|
app.query_one(Left).trigger()
|
||||||
|
app.query_one(Right).trigger()
|
||||||
|
|
||||||
|
assert handlers_called == ["left", "right"]
|
||||||
Reference in New Issue
Block a user