diff options
| author | Theron Luhn <theron@luhn.com> | 2020-11-08 12:38:45 -0800 |
|---|---|---|
| committer | Theron Luhn <theron@luhn.com> | 2020-11-08 12:38:45 -0800 |
| commit | ab15b5c8f48ccf0a5f106df7af46e2b9742d0b20 (patch) | |
| tree | 7f399c9270f5f06f8b2232605ad9efe18e5e06a9 /docs/tutorials/wiki2/src/tests | |
| parent | f10f81ccdfbf44cfa92ef5fcdcb84e6fed4053fb (diff) | |
| download | pyramid-ab15b5c8f48ccf0a5f106df7af46e2b9742d0b20.tar.gz pyramid-ab15b5c8f48ccf0a5f106df7af46e2b9742d0b20.tar.bz2 pyramid-ab15b5c8f48ccf0a5f106df7af46e2b9742d0b20.zip | |
First attempt at fixing wiki2 tests.
Diffstat (limited to 'docs/tutorials/wiki2/src/tests')
| -rw-r--r-- | docs/tutorials/wiki2/src/tests/tests/conftest.py | 13 | ||||
| -rw-r--r-- | docs/tutorials/wiki2/src/tests/tests/test_views.py | 26 |
2 files changed, 27 insertions, 12 deletions
diff --git a/docs/tutorials/wiki2/src/tests/tests/conftest.py b/docs/tutorials/wiki2/src/tests/tests/conftest.py index 1c8fb16d0..0fe689697 100644 --- a/docs/tutorials/wiki2/src/tests/tests/conftest.py +++ b/docs/tutorials/wiki2/src/tests/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 @@ -143,8 +143,9 @@ def app_request(app, tm, dbsession): yield request env['closer']() + @pytest.fixture -def dummy_request(app, tm, dbsession): +def dummy_request(tm, dbsession): """ A lightweight dummy request. @@ -158,9 +159,15 @@ 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: + config.include('tutorial.routes') # Current workaround, feels wrong. + yield config diff --git a/docs/tutorials/wiki2/src/tests/tests/test_views.py b/docs/tutorials/wiki2/src/tests/tests/test_views.py index 124782d2c..4e64dae1f 100644 --- a/docs/tutorials/wiki2/src/tests/tests/test_views.py +++ b/docs/tutorials/wiki2/src/tests/tests/test_views.py @@ -1,9 +1,17 @@ +from pyramid.testing import DummySecurityPolicy + from tutorial import models def makeUser(name, role): return models.User(name=name, role=role) + +def setUser(config, user): + config.set_security_policy( + DummySecurityPolicy(identity=user) + ) + def makePage(name, data, creator): return models.Page(name=name, data=data, creator=creator) @@ -12,7 +20,7 @@ class Test_view_wiki: from tutorial.views.default import view_wiki return view_wiki(request) - def test_it(self, dummy_request): + def test_it(self, dummy_config, dummy_request): response = self._callFUT(dummy_request) assert response.location == 'http://example.com/FrontPage' @@ -25,7 +33,7 @@ class Test_view_page: from tutorial.routes import PageResource return PageResource(page) - def test_it(self, dummy_request, dbsession): + def test_it(self, dummy_config, dummy_request, dbsession): # add a page to the db user = makeUser('foo', 'editor') page = makePage('IDoExist', 'Hello CruelWorld IDoExist', user) @@ -56,18 +64,18 @@ class Test_add_page: from tutorial.routes import NewPage return NewPage(pagename) - def test_get(self, dummy_request, dbsession): - dummy_request.identity = makeUser('foo', 'editor') + def test_get(self, dummy_config, dummy_request, dbsession): + setUser(dummy_config, makeUser('foo', 'editor')) dummy_request.context = self._makeContext('AnotherPage') info = self._callFUT(dummy_request) assert info['pagedata'] == '' assert info['save_url'] == 'http://example.com/add_page/AnotherPage' - def test_submit_works(self, dummy_request, dbsession): + def test_submit_works(self, dummy_config, dummy_request, dbsession): dummy_request.method = 'POST' dummy_request.POST['body'] = 'Hello yo!' dummy_request.context = self._makeContext('AnotherPage') - dummy_request.identity = makeUser('foo', 'editor') + setUser(dummy_config, makeUser('foo', 'editor')) self._callFUT(dummy_request) page = ( dbsession.query(models.Page) @@ -85,7 +93,7 @@ class Test_edit_page: from tutorial.routes import PageResource return PageResource(page) - def test_get(self, dummy_request, dbsession): + def test_get(self, dummy_config, dummy_request, dbsession): user = makeUser('foo', 'editor') page = makePage('abc', 'hello', user) dbsession.add_all([page, user]) @@ -95,14 +103,14 @@ class Test_edit_page: assert info['pagename'] == 'abc' assert info['save_url'] == 'http://example.com/abc/edit_page' - def test_submit_works(self, dummy_request, dbsession): + def test_submit_works(self, dummy_config, dummy_request, dbsession): user = makeUser('foo', 'editor') page = makePage('abc', 'hello', user) dbsession.add_all([page, user]) dummy_request.method = 'POST' dummy_request.POST['body'] = 'Hello yo!' - dummy_request.identity = user + setUser(dummy_config, user) dummy_request.context = self._makeContext(page) response = self._callFUT(dummy_request) assert response.location == 'http://example.com/abc' |
