mirror of
https://github.com/pyscript/pyscript.git
synced 2025-12-19 18:27:29 -05:00
Remove 'Implicit Async', Don't Await runtime.run() (#928)
* Revert to runPython instead of await runPythonAsync * "Implicit Coroutines" are no longer permitted in py-script tags * Tests added for the above * xfail test_importmap (See #938)
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import sys
|
||||
import textwrap
|
||||
from unittest.mock import Mock
|
||||
|
||||
import pyscript
|
||||
@@ -48,3 +49,71 @@ def test_format_mime_HTML():
|
||||
out, mime = pyscript.format_mime(obj)
|
||||
assert out == "<p>hello</p>"
|
||||
assert mime == "text/html"
|
||||
|
||||
|
||||
def test_uses_top_level_await():
|
||||
# Basic Case
|
||||
src = "x = 1"
|
||||
assert pyscript.uses_top_level_await(src) is False
|
||||
|
||||
# Comments are not top-level await
|
||||
src = textwrap.dedent(
|
||||
"""
|
||||
#await async for async with asyncio
|
||||
"""
|
||||
)
|
||||
|
||||
assert pyscript.uses_top_level_await(src) is False
|
||||
|
||||
# Top-level-await cases
|
||||
src = textwrap.dedent(
|
||||
"""
|
||||
async def foo():
|
||||
pass
|
||||
await foo
|
||||
"""
|
||||
)
|
||||
assert pyscript.uses_top_level_await(src) is True
|
||||
|
||||
src = textwrap.dedent(
|
||||
"""
|
||||
async with object():
|
||||
pass
|
||||
"""
|
||||
)
|
||||
assert pyscript.uses_top_level_await(src) is True
|
||||
|
||||
src = textwrap.dedent(
|
||||
"""
|
||||
async for _ in range(10):
|
||||
pass
|
||||
"""
|
||||
)
|
||||
assert pyscript.uses_top_level_await(src) is True
|
||||
|
||||
# Acceptable await/async for/async with cases
|
||||
src = textwrap.dedent(
|
||||
"""
|
||||
async def foo():
|
||||
await foo()
|
||||
"""
|
||||
)
|
||||
assert pyscript.uses_top_level_await(src) is False
|
||||
|
||||
src = textwrap.dedent(
|
||||
"""
|
||||
async def foo():
|
||||
async with object():
|
||||
pass
|
||||
"""
|
||||
)
|
||||
assert pyscript.uses_top_level_await(src) is False
|
||||
|
||||
src = textwrap.dedent(
|
||||
"""
|
||||
async def foo():
|
||||
async for _ in range(10):
|
||||
pass
|
||||
"""
|
||||
)
|
||||
assert pyscript.uses_top_level_await(src) is False
|
||||
|
||||
Reference in New Issue
Block a user