mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
43 lines
1.0 KiB
Python
43 lines
1.0 KiB
Python
import inspect
|
|
from typing import Any
|
|
|
|
from textual import work
|
|
from textual._log import LogGroup, LogVerbosity
|
|
from textual.app import App
|
|
|
|
|
|
async def test_log_from_worker() -> None:
|
|
"""Check that log calls from threaded workers call app._log"""
|
|
|
|
log_messages: list[tuple] = []
|
|
|
|
class LogApp(App):
|
|
|
|
def _log(
|
|
self,
|
|
group: LogGroup,
|
|
verbosity: LogVerbosity,
|
|
_textual_calling_frame: inspect.Traceback,
|
|
*objects: Any,
|
|
**kwargs,
|
|
) -> None:
|
|
log_messages.append(objects)
|
|
|
|
@property
|
|
def _is_devtools_connected(self):
|
|
"""Fake connected devtools."""
|
|
return True
|
|
|
|
def on_mount(self) -> None:
|
|
self.do_work()
|
|
self.call_after_refresh(self.exit)
|
|
|
|
@work(thread=True)
|
|
def do_work(self) -> None:
|
|
self.log("HELLO from do_work")
|
|
|
|
app = LogApp()
|
|
async with app.run_test() as pilot:
|
|
await pilot.pause()
|
|
assert ("HELLO from do_work",) in log_messages
|