mirror of
https://github.com/pyscript/pyscript.git
synced 2026-02-18 04:01:10 -05:00
* Remove duplicate LICENSE. * Remove un-userd pyscript.sw directory and its content. * Remove ReadTheDocs settings (unused). * Remove un-used pyproject.toml * Remove now unused CHANGELOG. Changes now tracked via release notes on GitHub. * Updated / cleaned release page template and associated GH actions. * Update prettierignore to remove un-needed refs. * Move troubleshooting into correct README. * Add reason for the index.html * Rename the "pyscript.core" directory to "core". * Update PR template because CHANGELOG is no longer used. * Codespell configuration in pyproject.toml. * Update pyscript.core -> core in .githubignore * Remove test-results/.last-run.json. This should be ignored by git. * Pin nodejs version. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
41 lines
969 B
Python
41 lines
969 B
Python
"""
|
|
Exercise (as much as is possible) the pyscript.ffi namespace.
|
|
"""
|
|
|
|
import upytest
|
|
from pyscript import ffi
|
|
|
|
|
|
def test_create_proxy():
|
|
"""
|
|
The create_proxy function should return a proxy object that is callable.
|
|
"""
|
|
|
|
def func():
|
|
return 42
|
|
|
|
proxy = ffi.create_proxy(func)
|
|
assert proxy() == 42
|
|
if upytest.is_micropython:
|
|
from jsffi import JsProxy
|
|
else:
|
|
from pyodide.ffi import JsProxy
|
|
assert isinstance(proxy, JsProxy)
|
|
|
|
|
|
def test_to_js():
|
|
"""
|
|
The to_js function should convert a Python object to a JavaScript object.
|
|
In this instance, a Python dict should be converted to a JavaScript object
|
|
represented by a JsProxy object.
|
|
"""
|
|
obj = {"a": 1, "b": 2}
|
|
js_obj = ffi.to_js(obj)
|
|
assert js_obj.a == 1
|
|
assert js_obj.b == 2
|
|
if upytest.is_micropython:
|
|
from jsffi import JsProxy
|
|
else:
|
|
from pyodide.ffi import JsProxy
|
|
assert isinstance(js_obj, JsProxy)
|