diff --git a/rhodecode/config/environment.py b/rhodecode/config/environment.py --- a/rhodecode/config/environment.py +++ b/rhodecode/config/environment.py @@ -158,6 +158,8 @@ def load_pyramid_environment(global_conf # This has to be done before the database connection is initialized. if settings['is_test']: rhodecode.is_test = True + rhodecode.disable_error_handler = True + utils.initialize_test_environment(settings_merged) # Initialize the database connection. diff --git a/rhodecode/config/middleware.py b/rhodecode/config/middleware.py --- a/rhodecode/config/middleware.py +++ b/rhodecode/config/middleware.py @@ -221,7 +221,8 @@ def make_not_found_view(config): except Exception as e: log.exception(e) - if settings.get('debugtoolbar.enabled', False): + if (settings.get('debugtoolbar.enabled', False) or + rhodecode.disable_error_handler): raise if isinstance(e, VCSCommunicationError): diff --git a/rhodecode/tests/lib/middleware/test_vcs_unavailable.py b/rhodecode/tests/lib/middleware/test_vcs_unavailable.py --- a/rhodecode/tests/lib/middleware/test_vcs_unavailable.py +++ b/rhodecode/tests/lib/middleware/test_vcs_unavailable.py @@ -20,6 +20,7 @@ import mock import pytest +import rhodecode import rhodecode.lib.vcs.client as client @pytest.mark.usefixtures('autologin_user', 'app') @@ -34,9 +35,13 @@ def test_vcs_available_returns_summary_p def test_vcs_unavailable_returns_vcs_error_page(app, backend): url = '/{repo_name}'.format(repo_name=backend.repo.repo_name) - with mock.patch.object(client, '_get_proxy_method') as p: - p.side_effect = client.exceptions.PyroVCSCommunicationError() - response = app.get(url, expect_errors=True) + try: + rhodecode.disable_error_handler = False + with mock.patch.object(client, '_get_proxy_method') as p: + p.side_effect = client.exceptions.PyroVCSCommunicationError() + response = app.get(url, expect_errors=True) + finally: + rhodecode.disable_error_handler = True assert response.status_code == 502 assert 'Could not connect to VCS Server' in response.body