From d5d41a0d9ecbb7a38b058d9afebcb48f52dd33ee Mon Sep 17 00:00:00 2001 From: Masen Furer Date: Thu, 12 Dec 2024 14:28:30 -0800 Subject: [PATCH] raise_console_error during integration tests (#4535) --- tests/integration/conftest.py | 23 ++++++++++++++++++++ tests/integration/test_exception_handlers.py | 2 ++ 2 files changed, 25 insertions(+) diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index f7b825f16..d11344903 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -6,6 +6,7 @@ from pathlib import Path import pytest +import reflex.app from reflex.config import environment from reflex.testing import AppHarness, AppHarnessProd @@ -76,3 +77,25 @@ def app_harness_env(request): The AppHarness class to use for the test. """ return request.param + + +@pytest.fixture(autouse=True) +def raise_console_error(request, mocker): + """Spy on calls to `console.error` used by the framework. + + Help catch spurious error conditions that might otherwise go unnoticed. + + If a test is marked with `ignore_console_error`, the spy will be ignored + after the test. + + Args: + request: The pytest request object. + mocker: The pytest mocker object. + + Yields: + control to the test function. + """ + spy = mocker.spy(reflex.app.console, "error") + yield + if "ignore_console_error" not in request.keywords: + spy.assert_not_called() diff --git a/tests/integration/test_exception_handlers.py b/tests/integration/test_exception_handlers.py index 406c21e5d..a645d1de6 100644 --- a/tests/integration/test_exception_handlers.py +++ b/tests/integration/test_exception_handlers.py @@ -13,6 +13,8 @@ from selenium.webdriver.support.ui import WebDriverWait from reflex.testing import AppHarness, AppHarnessProd +pytestmark = [pytest.mark.ignore_console_error] + def TestApp(): """A test app for event exception handler integration."""