Added Button, CheckboxList, HorizontalLine and ProgressBar for tests

This commit is contained in:
MaXFeeD
2025-04-03 18:58:43 +03:00
parent f34c3ba727
commit 39d8550af7
+31 -1
View File
@@ -94,7 +94,8 @@ def simple_async_test():
from prompt_toolkit.key_binding.bindings.focus import (focus_next,
focus_previous)
from prompt_toolkit.keys import Keys
from prompt_toolkit.widgets import Label, TextArea
from prompt_toolkit.widgets import (Button, CheckboxList, HorizontalLine,
Label, ProgressBar, TextArea)
class AnimatedTask:
@@ -177,13 +178,34 @@ def simple_async_test():
) for _ in range(50)
]
checkbox = CheckboxList(values=[("someid", "aboba")])
checkbox.show_scrollbar = False
kb = KeyBindings()
@kb.add("enter")
@kb.add(" ")
def _(event):
checkbox._handle_enter()
checkbox.control.key_bindings = kb
# Box cannot cover multiple components, containerify them is cringe
whitespace = Window(height=1)
progress = ProgressBar()
contents = [
task1.content,
task1.description,
task2.content,
task2.description,
whitespace,
Label("Please confirm that you are lazy:"),
checkbox,
HorizontalLine(),
Button("Confirm", lambda: checkbox._handle_enter()),
whitespace,
task3.content,
task3.description,
whitespace,
progress,
whitespace,
]
for task in pushing_tasks:
contents += [task.content, task.description]
@@ -203,6 +225,13 @@ def simple_async_test():
kb.add(Keys.Down)(focus_next)
kb.add(Keys.Up)(focus_previous)
async def update_progress():
while True:
progress.percentage = progress.percentage + 1
if progress.percentage > 100:
progress.percentage = 0
await asyncio.sleep(0.1)
async def main():
app = Application(
layout=layout,
@@ -213,6 +242,7 @@ def simple_async_test():
)
await asyncio.gather(
app.run_async(),
update_progress(),
task1.run(),
task2.run(),
task3.run(),