From 042a2b9967f23757393ee099f5c2016d6fb68107 Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Wed, 11 Nov 2020 21:48:41 -0800 Subject: Backport conftest changes to prior steps. --- docs/tutorials/wiki2/src/basiclayout/tests/conftest.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'docs/tutorials/wiki2/src/basiclayout') diff --git a/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py b/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py index 2db65f887..347180600 100644 --- a/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py +++ b/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py @@ -4,7 +4,7 @@ import alembic.command import os from pyramid.paster import get_appsettings from pyramid.scripting import prepare -from pyramid.testing import DummyRequest +from pyramid.testing import DummyRequest, testConfig import pytest import transaction from webob.cookies import Cookie @@ -103,7 +103,7 @@ def app_request(app, tm, dbsession): env['closer']() @pytest.fixture -def dummy_request(app, tm, dbsession): +def dummy_request(tm, dbsession): """ A lightweight dummy request. @@ -117,9 +117,13 @@ def dummy_request(app, tm, dbsession): """ request = DummyRequest() - request.registry = app.registry request.host = 'example.com' request.dbsession = dbsession request.tm = tm return request + +@pytest.yield_fixture +def dummy_config(dummy_request): + with testConfig(request=dummy_request) as config: + yield config -- cgit v1.2.3 From 86cb46d4d977d3a948308326bee628421cab93ea Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Wed, 11 Nov 2020 21:53:35 -0800 Subject: Remove `app_request` from wiki2 tests. --- .../wiki2/src/basiclayout/tests/conftest.py | 23 ---------------------- 1 file changed, 23 deletions(-) (limited to 'docs/tutorials/wiki2/src/basiclayout') diff --git a/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py b/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py index 347180600..57e86ac1c 100644 --- a/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py +++ b/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py @@ -3,7 +3,6 @@ import alembic.config import alembic.command import os from pyramid.paster import get_appsettings -from pyramid.scripting import prepare from pyramid.testing import DummyRequest, testConfig import pytest import transaction @@ -80,28 +79,6 @@ def testapp(app, tm, dbsession): return testapp -@pytest.fixture -def app_request(app, tm, dbsession): - """ - A real request. - - This request is almost identical to a real request but it has some - drawbacks in tests as it's harder to mock data and is heavier. - - """ - env = prepare(registry=app.registry) - request = env['request'] - request.host = 'example.com' - - # without this, request.dbsession will be joined to the same transaction - # manager but it will be using a different sqlalchemy.orm.Session using - # a separate database transaction - request.dbsession = dbsession - request.tm = tm - - yield request - env['closer']() - @pytest.fixture def dummy_request(tm, dbsession): """ -- cgit v1.2.3 From ea25ec5cd5715ab3dcf266a968166425e279927a Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Fri, 11 Dec 2020 09:22:15 -0800 Subject: Revert "Remove `app_request` from wiki2 tests." This reverts commit 86cb46d4d977d3a948308326bee628421cab93ea. --- .../wiki2/src/basiclayout/tests/conftest.py | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'docs/tutorials/wiki2/src/basiclayout') diff --git a/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py b/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py index 57e86ac1c..347180600 100644 --- a/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py +++ b/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py @@ -3,6 +3,7 @@ import alembic.config import alembic.command import os from pyramid.paster import get_appsettings +from pyramid.scripting import prepare from pyramid.testing import DummyRequest, testConfig import pytest import transaction @@ -79,6 +80,28 @@ def testapp(app, tm, dbsession): return testapp +@pytest.fixture +def app_request(app, tm, dbsession): + """ + A real request. + + This request is almost identical to a real request but it has some + drawbacks in tests as it's harder to mock data and is heavier. + + """ + env = prepare(registry=app.registry) + request = env['request'] + request.host = 'example.com' + + # without this, request.dbsession will be joined to the same transaction + # manager but it will be using a different sqlalchemy.orm.Session using + # a separate database transaction + request.dbsession = dbsession + request.tm = tm + + yield request + env['closer']() + @pytest.fixture def dummy_request(tm, dbsession): """ -- cgit v1.2.3 From 0416521c1c95cb8739b65906c1c3cced1b9163dc Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Fri, 11 Dec 2020 09:41:05 -0800 Subject: Install new cookiecutter conftests. --- .../wiki2/src/basiclayout/tests/conftest.py | 35 ++++++++++++---------- 1 file changed, 19 insertions(+), 16 deletions(-) (limited to 'docs/tutorials/wiki2/src/basiclayout') diff --git a/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py b/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py index 347180600..4ac4c60a8 100644 --- a/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py +++ b/docs/tutorials/wiki2/src/basiclayout/tests/conftest.py @@ -7,7 +7,6 @@ from pyramid.scripting import prepare from pyramid.testing import DummyRequest, testConfig import pytest import transaction -from webob.cookies import Cookie import webtest from tutorial import main @@ -89,28 +88,26 @@ def app_request(app, tm, dbsession): drawbacks in tests as it's harder to mock data and is heavier. """ - env = prepare(registry=app.registry) - request = env['request'] - request.host = 'example.com' + with prepare(registry=app.registry) as env: + request = env['request'] + request.host = 'example.com' - # without this, request.dbsession will be joined to the same transaction - # manager but it will be using a different sqlalchemy.orm.Session using - # a separate database transaction - request.dbsession = dbsession - request.tm = tm + # without this, request.dbsession will be joined to the same transaction + # manager but it will be using a different sqlalchemy.orm.Session using + # a separate database transaction + request.dbsession = dbsession + request.tm = tm - yield request - env['closer']() + yield request @pytest.fixture def dummy_request(tm, dbsession): """ A lightweight dummy request. - This request is ultra-lightweight and should be used only when the - request itself is not a large focus in the call-stack. - - It is way easier to mock and control side-effects using this object. + This request is ultra-lightweight and should be used only when the request + itself is not a large focus in the call-stack. It is much easier to mock + and control side-effects using this object, however: - It does not have request extensions applied. - Threadlocals are not properly pushed. @@ -123,7 +120,13 @@ def dummy_request(tm, dbsession): return request -@pytest.yield_fixture +@pytest.fixture def dummy_config(dummy_request): + """ + A dummy :class:`pyramid.config.Configurator` object. This allows for + mock configuration, including configuration for ``dummy_request``, as well + as pushing the appropriate threadlocals. + + """ with testConfig(request=dummy_request) as config: yield config -- cgit v1.2.3