Files
rio/tests/test_testing_tools.py
2024-06-03 22:49:39 +02:00

38 lines
1.1 KiB
Python

import rio.testing
async def test_active_page_url():
url = "foo/bar"
async with rio.testing.TestClient(active_url=url) as test_client:
assert test_client.session.active_page_url.path == "/" + url
async def test_crashed_build_functions_are_tracked():
def build() -> rio.Component:
return 3 # type: ignore
async with rio.testing.TestClient(build) as test_client:
assert len(test_client.crashed_build_functions) == 1
async def test_rebuild_resets_crashed_build_functions():
class CrashingComponent(rio.Component):
fail: bool = True
def build(self) -> rio.Component:
if self.fail:
raise RuntimeError
else:
return rio.Text("hi")
async with rio.testing.TestClient(CrashingComponent) as test_client:
assert len(test_client.crashed_build_functions) == 1
crashing_component = test_client.get_component(CrashingComponent)
crashing_component.fail = False
await test_client.refresh()
assert not test_client.crashed_build_functions