mirror of
https://github.com/pyscript/pyscript.git
synced 2025-12-19 18:27:29 -05:00
49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
import upytest
|
|
import js
|
|
from pyscript import util
|
|
|
|
|
|
def test_as_bytearray():
|
|
"""
|
|
Test the as_bytearray function correctly converts a JavaScript ArrayBuffer
|
|
to a Python bytearray.
|
|
"""
|
|
msg = b"Hello, world!"
|
|
buffer = js.ArrayBuffer.new(len(msg))
|
|
ui8a = js.Uint8Array.new(buffer)
|
|
for i, b in enumerate(msg):
|
|
ui8a[i] = b
|
|
ba = util.as_bytearray(buffer)
|
|
assert isinstance(ba, bytearray)
|
|
assert ba == msg
|
|
|
|
|
|
def test_not_supported():
|
|
"""
|
|
Test the NotSupported class raises an exception when trying to access
|
|
attributes or call the object.
|
|
"""
|
|
ns = util.NotSupported("test", "This is not supported.")
|
|
with upytest.raises(AttributeError) as e:
|
|
ns.test
|
|
assert str(e.exception) == "This is not supported.", str(e.exception)
|
|
with upytest.raises(AttributeError) as e:
|
|
ns.test = 1
|
|
assert str(e.exception) == "This is not supported.", str(e.exception)
|
|
with upytest.raises(TypeError) as e:
|
|
ns()
|
|
assert str(e.exception) == "This is not supported.", str(e.exception)
|
|
|
|
|
|
def test_is_awaitable():
|
|
"""
|
|
Test the is_awaitable function correctly identifies an asynchronous
|
|
function.
|
|
"""
|
|
|
|
async def async_func():
|
|
yield
|
|
|
|
assert util.is_awaitable(async_func)
|
|
assert not util.is_awaitable(lambda: None)
|