Before this PR, the following test passed:
def test_pyscript_hello(self):
self.pyscript_run(
"""
<script type="py">
raise Exception("hello")
</script>
""")
What happens is that we intercept the Python exception and display a nice banner on the DOM, but the test itself passes. This is error prone: if we have Python exceptions on the page, the test should fail by default, and we should have a way to silence it in case those exceptions are expected.
This PR treats Python errors as we treat JS errors: unhandled exceptions cause the test to fail, but you can silence them by calling self.check_py_errors(), exactly as you can call self.check_js_errors().
* Add new _event_handling.py file with @when decorator
* @when decorate is in pyscript package namespace/_all__
* Write tests in new test_event_handling.py
* Add docs for @when decorator
------------
Co-authored-by: Mariana Meireles <marian.meireles@gmail.com>