mirror of
https://github.com/pyscript/pyscript.git
synced 2025-12-19 18:27:29 -05:00
* Add two unit tests for illustrative purposes. * Radical simplification of @when, more tests and some minor refactoring. Handle ElementCollections, tests for ElementCollection, make serve for running tests locally. * Skip flakey Pyodide in worker test (it works 50/50 and appears to be a timing issue). * Ensure onFOO relates to an underlying FOO event in an Element. * Minor comment cleanup. * Add async test for Event listeners. * Handlers no longer require an event parameter. * Add tests for async handling via when. * Docstring cleanup. * Refactor onFOO to on_FOO. * Minor typo tidy ups. * Use correct check for MicroPython. --------- Co-authored-by: Andrea Giammarchi <andrea.giammarchi@gmail.com>
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 b in 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)
|