* bring Makefile to root folder
* add back the print to console when pyscript is ready
* fix build path on tests, link to core.js and overall timeout since it now loads faster
* fix and mark some tests accordingly
* change default timeout to 20s
* review tests and skip what is a known regression
* more tests review until pycondif and skip what is a known regression
* fix pyodide version used on tests
* remove display from config test since it's not testing anything more than console already tests and display as its own tests
* disable config tests that rely on the banner
* skip REPL tests since it's not included in pyscript NEXT
* skip PyTerminal tests since it's not included in pyscript NEXT
* skip more tests relying on Element
* Fix wrong script type from py-script to py
* review more tests related to attributes and add test for worker
* skip spashscreen tests
* wrap up reviews on remaining tests
* update core
* update display tests to use import
* fix more tests and skip some that have known issues
* skip other 2 tests that fail because the test framework injects values that cause the config to fail
* fix getPySrc test due to changed interface
* another round of fixes and commenting on specific tests
---------
Co-authored-by: Fabio Pliger <fpliger@anaconda.com>
This PR adds support for optionally running pyodide in a web worker:
- add a new option config.execution_thread, which can be `main` or `worker`. The default is `main`
- improve the test machinery so that we run all tests twice, once for `main` and once for `worker`
- add a new esbuild target which builds the code for the worker
The support for workers is not complete and many features are still missing: there are 71 tests which are marked as `@skip_worker`, but we can fix them in subsequent PRs.
The vast majority of tests fail because js.document is unavailable: for it to run transparently, we need the "auto-syncify" feature of synclink.
Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com>
Co-authored-by: Madhur Tandon <20173739+madhur-tandon@users.noreply.github.com>
Resolves pyscript#1313 and pyscript#1314. On top of pyscript#1318.
The point of these tests is to define the execution order of Tasks
that are scheduled in <py-script> tags: first all the py-script tags
are executed and their related lifecycle events. Once all of this
is done, we schedule any enqueued tasks.
To delay the execution of these tasks, we use a custom event loop for
pyExec with this defer behavior. Until schedule_deferred_tasks is called,
we defer tasks started by user code. schedule_deferred_tasks starts all
deferred user tasks and switches to immediately scheduling any further
user tasks.
* Add beforePyScriptExec, afterPyScriptExec lifecycle hooks
* Add stdiodirector plugin for `output`, `stderr` attributes of py-script tag
* Add docs on `output` and `stderr` attributes of py-script tag
* Tests
* Removed output deprecation warning for `output` attribute
* Add createSingularWarning(), with createDeprecationWarning as alias