call later

This commit is contained in:
Will McGugan
2022-11-09 17:23:28 +00:00
parent 51d5e7db0c
commit 39a764f49f
9 changed files with 88 additions and 22 deletions

41
tests/test_call_later.py Normal file
View File

@@ -0,0 +1,41 @@
import asyncio
from textual.app import App
class CallLaterApp(App[None]):
def __init__(self) -> None:
self.display_count = 0
super().__init__()
def post_display_hook(self) -> None:
self.display_count += 1
async def test_call_later() -> None:
"""Check that call later makes a call."""
app = CallLaterApp()
called_event = asyncio.Event()
async with app.run_test():
app.call_later(called_event.set)
await asyncio.wait_for(called_event.wait(), 1)
async def test_call_after_refresh() -> None:
"""Check that call later makes a call after a refresh."""
app = CallLaterApp()
display_count = -1
called_event = asyncio.Event()
def callback() -> None:
nonlocal display_count
called_event.set()
display_count = app.display_count
async with app.run_test():
app.call_after_refresh(callback)
await asyncio.wait_for(called_event.wait(), 1)
app_display_count = app.display_count
assert app_display_count > display_count