import re from .support import PyScriptTest class TestAsync(PyScriptTest): def test_multiple_async(self): self.pyscript_run( """ import js import asyncio for i in range(3): js.console.log('A', i) await asyncio.sleep(0.1) import js import asyncio for i in range(3): js.console.log('B', i) await asyncio.sleep(0.1) js.console.log("async tadone") """ ) self.wait_for_console("async tadone") assert self.console.log.lines == [ "Python initialization complete", "A 0", "B 0", "A 1", "B 1", "A 2", "B 2", "async tadone", ] def test_multiple_async_display(self): self.pyscript_run( """ def say_hello(): display('hello') say_hello() """ ) inner_html = self.page.content() pattern = r'
hello
' assert re.search(pattern, inner_html) def test_multiple_async_multiple_display(self): self.pyscript_run( """ import asyncio for i in range(2): display('A') await asyncio.sleep(0) import asyncio for i in range(2): display('B') await asyncio.sleep(0) """ ) inner_text = self.page.inner_text("html") assert "A\nB\nA\nB" in inner_text