From 1bfc23824e0ab51a1a7ce09fb6f8e740f1d746e0 Mon Sep 17 00:00:00 2001 From: Charmander <~@charmander.me> Date: Wed, 15 May 2024 15:50:40 -0700 Subject: [PATCH] Configure Pyramid registry only once across a test session, instead of once for each test Halves the time to run `weasyl.test`. --- weasyl/test/conftest.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/weasyl/test/conftest.py b/weasyl/test/conftest.py index 4184eeed2..3982e0051 100644 --- a/weasyl/test/conftest.py +++ b/weasyl/test/conftest.py @@ -80,19 +80,29 @@ def empty_storage(): shutil.rmtree(macro.MACRO_STORAGE_ROOT) +@pytest.fixture(scope="session") +def configurator(): + config = pyramid.testing.setUp() + setup_routes_and_views(config) + + try: + yield config + finally: + pyramid.testing.tearDown() + + @pytest.fixture(autouse=True) -def setup_request_environment(request): +def setup_request_environment(request, configurator): pyramid_request = pyramid.testing.DummyRequest() pyramid_request.set_property(middleware.pg_connection_request_property, name='pg_connection', reify=True) pyramid_request.set_property(middleware.userid_request_property, name='userid', reify=True) pyramid_request.web_input = middleware.web_input_request_method pyramid_request.environ['HTTP_X_FORWARDED_FOR'] = '127.0.0.1' pyramid_request.client_addr = '127.0.0.1' - setup_routes_and_views(pyramid.testing.setUp(request=pyramid_request)) + configurator.begin(request=pyramid_request) def tear_down(): pyramid_request.pg_connection.close() - pyramid.testing.tearDown() request.addfinalizer(tear_down)