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