You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, we run tests which rely on the browser using a synchronously executing web driver from Selenium. As a result, server implementations have been required to provide a run_in_thread method such that they can be run in the background while the blocking test code is allowed to proceed.
Unfortunately, some async servers don't play well with threads. This is primarily due to the fact that cleanly stopping a thread can be somewhat challenging. For example, IDOM is currently locked into version sanic<19.12 because later releases have been developed without consideration for threading.
Proposed Actions
As a result, we should switch to an async web driver like arsenic or pyppeteer and add a ServerType.run_async method to the various server implementations. Once this is done we can deprecate the ServerType.run_in_thread method.
Then lastly, we can upgrade Sanic to the latest version.
Work Items
Implement ServerType.run_async and switch to async web driver
Mark ServerType.run_in_thread as deprecated
Update downstream libraries (e.g. custom component template and anything made from it).
Upgrade sanic and raise when run_in_thread is called for sanic>=19.12
Activity
Archmonger commentedon Feb 17, 2022
We can also use arsenic instead of Selenium.
It would save us a lot of effort in developing custom tooling.
rmorshea commentedon Feb 18, 2022
This is somewhat more urgent as a result of: GHSA-7p79-6x2v-5h88
Archmonger commentedon Feb 18, 2022
Security issues are not publicly visible, and I don't have access to them.
rmorshea commentedon Feb 18, 2022
I edited the link