8000 Fix test_async and test_stdio_handling by hoodmane · Pull Request #1319 · pyscript/pyscript · GitHub
[go: up one dir, main page]

Skip to content

Fix test_async and test_stdio_handling #1319

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Mar 30, 2023
Merged

Conversation

hoodmane
Copy link
Contributor
@hoodmane hoodmane commented Mar 28, 2023

Resolves #1313. Resolves #1314. On top of #1318.

The point of these tests is to define the execution order of Tasks
that are scheduled in 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 start_ is called, our custom loop
just stores the tasks. When start_ is called, all deferred tasks are
scheduled and any later tasks are also scheduled immediately.

This deferment should only apply to user logic, so we set the custom event
loop in a context manager around the user calls and restore the original
event loop when we're done.

@hoodmane hoodmane force-pushed the async-fixes branch 8 times, most recently from cd87c81 to 1777114 Compare March 28, 2023 03:52
@JeffersGlass
Copy link
Contributor

Looking forward to looking at this, but will defer until after #1318 is resolved.

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 `start_` is called, our custom loop
just stores the tasks. When `start_` is called, all deferred tasks are
scheduled and any later tasks are also scheduled immediately.

This deferment should only apply to user logic, so we set the custom event
loop in a context manager around the user calls and restore the original
event loop when we're done.
Copy link
Contributor
@FabioRosado FabioRosado left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some questions but looks good 😄

@hoodmane
Copy link
Contributor Author

Thanks for the review @FabioRosado!

@hoodmane hoodmane merged commit e9122bc into pyscript:main Mar 30, 2023
@hoodmane hoodmane deleted the async-fixes branch March 30, 2023 21:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fix the xfail tests in test_stdio_handling.py Fix the xfail tests in test_async.py
3 participants
0