diff options
| author | Chris McDonough <chrism@plope.com> | 2011-08-14 22:44:22 -0400 |
|---|---|---|
| committer | Chris McDonough <chrism@plope.com> | 2011-08-14 22:44:22 -0400 |
| commit | b2533554bb8816d412615595f4d7947f7779bf47 (patch) | |
| tree | cc3b4629ae97d5119311665a7bebc63532fa0ed1 /docs/tutorials/wiki | |
| parent | 27443561a9b837684af726b1aec2b5a98b22d494 (diff) | |
| download | pyramid-b2533554bb8816d412615595f4d7947f7779bf47.tar.gz pyramid-b2533554bb8816d412615595f4d7947f7779bf47.tar.bz2 pyramid-b2533554bb8816d412615595f4d7947f7779bf47.zip | |
- The ZODB wiki tutorial now uses the ``pyramid_zodbconn`` package rather
than the ``repoze.zodbconn`` package to provide ZODB integration.
- The ZODB scaffold now uses the ``pyramid_zodbconn`` package rather than the
``repoze.zodbconn`` package to provide ZODB integration.
Diffstat (limited to 'docs/tutorials/wiki')
25 files changed, 80 insertions, 127 deletions
diff --git a/docs/tutorials/wiki/authorization.rst b/docs/tutorials/wiki/authorization.rst index 46c953f6d..1835ce7ea 100644 --- a/docs/tutorials/wiki/authorization.rst +++ b/docs/tutorials/wiki/authorization.rst @@ -42,7 +42,7 @@ declarative security checking. We need to import the new policies: Then, we'll add those policies to the configuration: .. literalinclude:: src/authorization/tutorial/__init__.py - :lines: 16-18,26-28 + :lines: 20-25 :linenos: :language: python diff --git a/docs/tutorials/wiki/basiclayout.rst b/docs/tutorials/wiki/basiclayout.rst index 1aebaffd7..726f32545 100644 --- a/docs/tutorials/wiki/basiclayout.rst +++ b/docs/tutorials/wiki/basiclayout.rst @@ -31,23 +31,13 @@ point happens to be the ``main`` function within the file named #. *Lines 1-3*. Perform some dependency imports. -#. *Line 8*. Get the ZODB configuration from the ``development.ini`` - file's ``[app:main]`` section represented by the ``settings`` - dictionary passed to our ``app`` function. This will be a URI - (something like ``file:///path/to/Data.fs``). +#. *Lines 5-7* Define a root factory for our Pyramid application. -#. *Line 12*. We create a "finder" object using the - ``PersistentApplicationFinder`` helper class, passing it the ZODB - URI and the "appmaker" we've imported from ``models.py``. - -#. *Lines 13 - 14*. We create a :term:`root factory` which uses the - finder to return a ZODB root object. - -#. *Line 15*. We construct a :term:`Configurator` with a :term:`root +#. *Line 12*. We construct a :term:`Configurator` with a :term:`root factory` and the settings keywords parsed by PasteDeploy. The root factory is named ``get_root``. -#. *Line 16*. Register a 'static view' which answers requests which start +#. *Line 13*. Register a 'static view' which answers requests which start with with URL path ``/static`` using the :meth:`pyramid.config.Configurator.add_static_view method`. This statement registers a view that will serve up static assets, such as CSS @@ -59,14 +49,14 @@ point happens to be the ``main`` function within the file named should serve within the ``static`` directory inside the ``tutorial`` package. -#. *Line 17*. Perform a :term:`scan`. A scan will find :term:`configuration +#. *Line 14*. Perform a :term:`scan`. A scan will find :term:`configuration decoration`, such as view configuration decorators (e.g. ``@view_config``) in the source code of the ``tutorial`` package and will take actions based on these decorators. The argument to :meth:`~pyramid.config.Configurator.scan` is the package name to scan, which is ``tutorial``. -#. *Line 18*. Use the +#. *Line 15*. Use the :meth:`pyramid.config.Configurator.make_wsgi_app` method to return a :term:`WSGI` application. @@ -100,7 +90,8 @@ Here is the source for ``models.py``: root* object. It is called on *every request* to the :app:`Pyramid` application. It also performs bootstrapping by *creating* an application root (inside the ZODB root object) if one - does not already exist. + does not already exist. It is used by the "root_factory" we've defined + in our ``__init__.py``. We do so by first seeing if the database has the persistent application root. If not, we make an instance, store it, and @@ -162,8 +153,8 @@ Let's try to understand the components in this module: dictionary is used by the template named by the ``mytemplate.pt`` asset specification to fill in certain values on the page. -The WSGI Pipeline in ``development.ini`` ----------------------------------------- +Configuration in ``development.ini`` +------------------------------------ The ``development.ini`` (in the tutorial :term:`project` directory, as opposed to the tutorial :term:`package` directory) looks like this: @@ -171,19 +162,14 @@ opposed to the tutorial :term:`package` directory) looks like this: .. literalinclude:: src/views/development.ini :language: ini - Note the existence of a ``[pipeline:main]`` section which specifies our WSGI pipeline. This "pipeline" will be served up as our WSGI application. As far -as the WSGI server is concerned the pipeline *is* our application. Simpler -configurations don't use a pipeline: instead they expose a single WSGI -application as "main". Our setup is more complicated, so we use a pipeline -composed of :term:`middleware`. +as the WSGI server is concerned the pipeline *is* our application. -The ``egg:repoze.zodbconn#closer`` middleware is at the top of the pipeline. -This is a piece of middleware which closes the ZODB connection opened by the -``PersistentApplicationFinder`` at the end of the request. +Our ZODB database settings are specified as the ``zodbconn.uri`` setting in +the application section. -The final line in the ``[pipeline:main]`` section is ``tutorial``, which +The only line in the ``[pipeline:main]`` section is ``tutorial``, which refers to the ``[app:tutorial]`` section above it. The ``[app:tutorial]`` section is the section which actually defines our application settings. The values within this section are passed as ``**settings`` to the ``main`` diff --git a/docs/tutorials/wiki/definingmodels.rst b/docs/tutorials/wiki/definingmodels.rst index baf497458..9dd53609e 100644 --- a/docs/tutorials/wiki/definingmodels.rst +++ b/docs/tutorials/wiki/definingmodels.rst @@ -73,12 +73,6 @@ front page) into the Wiki within the ``appmaker``. This will provide :term:`traversal` a :term:`resource tree` to work against when it attempts to resolve URLs to resources. -We're using a mini-framework callable named ``PersistentApplicationFinder`` -in our application (see ``__init__.py``). A ``PersistentApplicationFinder`` -accepts a ZODB URL as well as an "appmaker" callback. This callback -typically lives in the ``models.py`` file. We'll just change this function, -making the necessary edits. - Looking at the Result of Our Edits to ``models.py`` --------------------------------------------------- diff --git a/docs/tutorials/wiki/installation.rst b/docs/tutorials/wiki/installation.rst index cc2cf0ae2..28d9eb152 100644 --- a/docs/tutorials/wiki/installation.rst +++ b/docs/tutorials/wiki/installation.rst @@ -66,12 +66,12 @@ Preparation, UNIX $ bin/easy_install pyramid #. Use ``easy_install`` to install ``docutils``, ``pyramid_tm``, - ``repoze.zodbconn``, ``nose`` and ``coverage``: + ``pyramid_zodbconn``, ``pyramid_debugtoolbar``, ``nose`` and ``coverage``: .. code-block:: text - $ bin/easy_install docutils pyramid_tm repoze.zodbconn \ - nose coverage + $ bin/easy_install docutils pyramid_tm pyramid_zodbconn \ + pyramid_debugtoolbar nose coverage Preparation, Windows -------------------- @@ -118,12 +118,12 @@ Preparation, Windows c:\pyramidtut> Scripts\easy_install pyramid #. Use ``easy_install`` to install ``docutils``, ``pyramid_tm``, - ``repoze.zodbconn``, ``nose`` and ``coverage``: + ``pyramid_zodbconn``, ``pyramid_debugtoolbar``, ``nose`` and ``coverage``: .. code-block:: text c:\pyramidtut> Scripts\easy_install docutils pyramid_tm \ - repoze.zodbconn nose coverage + pyramid_zodbconn pyramid_debugtoolbar nose coverage .. _making_a_project: diff --git a/docs/tutorials/wiki/src/authorization/development.ini b/docs/tutorials/wiki/src/authorization/development.ini index 48a093981..2db77b9ef 100644 --- a/docs/tutorials/wiki/src/authorization/development.ini +++ b/docs/tutorials/wiki/src/authorization/development.ini @@ -7,14 +7,13 @@ pyramid.debug_routematch = false pyramid.debug_templates = true pyramid.default_locale_name = en pyramid.includes = pyramid_debugtoolbar + pyramid_zodbconn pyramid_tm tm.attempts = 3 - -zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 +zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 [pipeline:main] pipeline = - egg:repoze.zodbconn#closer tutorial [server:main] diff --git a/docs/tutorials/wiki/src/authorization/production.ini b/docs/tutorials/wiki/src/authorization/production.ini index 247d789a9..0462bae90 100644 --- a/docs/tutorials/wiki/src/authorization/production.ini +++ b/docs/tutorials/wiki/src/authorization/production.ini @@ -7,13 +7,12 @@ pyramid.debug_routematch = false pyramid.debug_templates = false pyramid.default_locale_name = en pyramid.includes = pyramid_tm + pyramid_zodbconn tm.attempts = 3 - -zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 +zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 [pipeline:main] pipeline = - egg:repoze.zodbconn#closer tutorial [server:main] diff --git a/docs/tutorials/wiki/src/authorization/setup.py b/docs/tutorials/wiki/src/authorization/setup.py index 9cf0fb143..7dd7f2fc6 100644 --- a/docs/tutorials/wiki/src/authorization/setup.py +++ b/docs/tutorials/wiki/src/authorization/setup.py @@ -8,7 +8,7 @@ CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() requires = [ 'pyramid', - 'repoze.zodbconn', + 'pyramid_zodbconn', 'pyramid_tm', 'pyramid_debugtoolbar', 'ZODB3', diff --git a/docs/tutorials/wiki/src/authorization/tutorial/__init__.py b/docs/tutorials/wiki/src/authorization/tutorial/__init__.py index f7dab5f47..5daff6b22 100644 --- a/docs/tutorials/wiki/src/authorization/tutorial/__init__.py +++ b/docs/tutorials/wiki/src/authorization/tutorial/__init__.py @@ -1,12 +1,16 @@ -from repoze.zodbconn.finder import PersistentApplicationFinder - from pyramid.config import Configurator +from pyramid_zodbconn import get_connection + from pyramid.authentication import AuthTktAuthenticationPolicy from pyramid.authorization import ACLAuthorizationPolicy from tutorial.models import appmaker from tutorial.security import groupfinder +def root_factory(request): + conn = get_connection(request) + return appmaker(conn.root()) + def main(global_config, **settings): """ This function returns a WSGI application. @@ -16,14 +20,7 @@ def main(global_config, **settings): authn_policy = AuthTktAuthenticationPolicy(secret='sosecret', callback=groupfinder) authz_policy = ACLAuthorizationPolicy() - zodb_uri = settings.get('zodb_uri', False) - if zodb_uri is False: - raise ValueError("No 'zodb_uri' in application configuration.") - - finder = PersistentApplicationFinder(zodb_uri, appmaker) - def get_root(request): - return finder(request.environ) - config = Configurator(root_factory=get_root, settings=settings, + config = Configurator(root_factory=root_factory, settings=settings, authentication_policy=authn_policy, authorization_policy=authz_policy) config.add_static_view('static', 'tutorial:static') diff --git a/docs/tutorials/wiki/src/basiclayout/development.ini b/docs/tutorials/wiki/src/basiclayout/development.ini index 4759662ff..28775cba9 100644 --- a/docs/tutorials/wiki/src/basiclayout/development.ini +++ b/docs/tutorials/wiki/src/basiclayout/development.ini @@ -7,14 +7,13 @@ pyramid.debug_routematch = false pyramid.debug_templates = true pyramid.default_locale_name = en pyramid.includes = pyramid_debugtoolbar + pyramid_zodbconn pyramid_tm tm.attempts = 3 - -zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 +zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 [pipeline:main] pipeline = - egg:repoze.zodbconn#closer tutorial [server:main] diff --git a/docs/tutorials/wiki/src/basiclayout/production.ini b/docs/tutorials/wiki/src/basiclayout/production.ini index 247d789a9..0462bae90 100644 --- a/docs/tutorials/wiki/src/basiclayout/production.ini +++ b/docs/tutorials/wiki/src/basiclayout/production.ini @@ -7,13 +7,12 @@ pyramid.debug_routematch = false pyramid.debug_templates = false pyramid.default_locale_name = en pyramid.includes = pyramid_tm + pyramid_zodbconn tm.attempts = 3 - -zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 +zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 [pipeline:main] pipeline = - egg:repoze.zodbconn#closer tutorial [server:main] diff --git a/docs/tutorials/wiki/src/basiclayout/setup.py b/docs/tutorials/wiki/src/basiclayout/setup.py index bc689f941..fa641b50b 100644 --- a/docs/tutorials/wiki/src/basiclayout/setup.py +++ b/docs/tutorials/wiki/src/basiclayout/setup.py @@ -8,7 +8,7 @@ CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() requires = [ 'pyramid', - 'repoze.zodbconn', + 'pyramid_zodbconn', 'pyramid_tm', 'pyramid_debugtoolbar', 'ZODB3', diff --git a/docs/tutorials/wiki/src/basiclayout/tutorial/__init__.py b/docs/tutorials/wiki/src/basiclayout/tutorial/__init__.py index 6a4093a3b..3424807c0 100644 --- a/docs/tutorials/wiki/src/basiclayout/tutorial/__init__.py +++ b/docs/tutorials/wiki/src/basiclayout/tutorial/__init__.py @@ -1,18 +1,15 @@ from pyramid.config import Configurator -from repoze.zodbconn.finder import PersistentApplicationFinder +from pyramid_zodbconn import get_connection from tutorial.models import appmaker +def root_factory(request): + conn = get_connection(request) + return appmaker(conn.root()) + def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ - zodb_uri = settings.get('zodb_uri', False) - if zodb_uri is False: - raise ValueError("No 'zodb_uri' in application configuration.") - - finder = PersistentApplicationFinder(zodb_uri, appmaker) - def get_root(request): - return finder(request.environ) - config = Configurator(root_factory=get_root, settings=settings) + config = Configurator(root_factory=root_factory, settings=settings) config.add_static_view('static', 'tutorial:static') config.scan('tutorial') return config.make_wsgi_app() diff --git a/docs/tutorials/wiki/src/models/development.ini b/docs/tutorials/wiki/src/models/development.ini index 48a093981..2db77b9ef 100644 --- a/docs/tutorials/wiki/src/models/development.ini +++ b/docs/tutorials/wiki/src/models/development.ini @@ -7,14 +7,13 @@ pyramid.debug_routematch = false pyramid.debug_templates = true pyramid.default_locale_name = en pyramid.includes = pyramid_debugtoolbar + pyramid_zodbconn pyramid_tm tm.attempts = 3 - -zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 +zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 [pipeline:main] pipeline = - egg:repoze.zodbconn#closer tutorial [server:main] diff --git a/docs/tutorials/wiki/src/models/production.ini b/docs/tutorials/wiki/src/models/production.ini index 247d789a9..0462bae90 100644 --- a/docs/tutorials/wiki/src/models/production.ini +++ b/docs/tutorials/wiki/src/models/production.ini @@ -7,13 +7,12 @@ pyramid.debug_routematch = false pyramid.debug_templates = false pyramid.default_locale_name = en pyramid.includes = pyramid_tm + pyramid_zodbconn tm.attempts = 3 - -zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 +zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 [pipeline:main] pipeline = - egg:repoze.zodbconn#closer tutorial [server:main] diff --git a/docs/tutorials/wiki/src/models/setup.py b/docs/tutorials/wiki/src/models/setup.py index bc689f941..fa641b50b 100644 --- a/docs/tutorials/wiki/src/models/setup.py +++ b/docs/tutorials/wiki/src/models/setup.py @@ -8,7 +8,7 @@ CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() requires = [ 'pyramid', - 'repoze.zodbconn', + 'pyramid_zodbconn', 'pyramid_tm', 'pyramid_debugtoolbar', 'ZODB3', diff --git a/docs/tutorials/wiki/src/models/tutorial/__init__.py b/docs/tutorials/wiki/src/models/tutorial/__init__.py index 73fc81d23..612966c5c 100644 --- a/docs/tutorials/wiki/src/models/tutorial/__init__.py +++ b/docs/tutorials/wiki/src/models/tutorial/__init__.py @@ -1,18 +1,15 @@ from pyramid.config import Configurator -from repoze.zodbconn.finder import PersistentApplicationFinder +from pyramid_zodbconn import get_connection from tutorial.models import appmaker +def root_factory(request): + conn = get_connection(request) + return appmaker(conn.root()) + def main(global_config, **settings): """ This function returns a WSGI application. """ - zodb_uri = settings.get('zodb_uri', False) - if zodb_uri is False: - raise ValueError("No 'zodb_uri' in application configuration.") - - finder = PersistentApplicationFinder(zodb_uri, appmaker) - def get_root(request): - return finder(request.environ) - config = Configurator(root_factory=get_root, settings=settings) + config = Configurator(root_factory=root_factory, settings=settings) config.add_static_view('static', 'tutorial:static') config.scan('tutorial') return config.make_wsgi_app() diff --git a/docs/tutorials/wiki/src/tests/development.ini b/docs/tutorials/wiki/src/tests/development.ini index 48a093981..2db77b9ef 100644 --- a/docs/tutorials/wiki/src/tests/development.ini +++ b/docs/tutorials/wiki/src/tests/development.ini @@ -7,14 +7,13 @@ pyramid.debug_routematch = false pyramid.debug_templates = true pyramid.default_locale_name = en pyramid.includes = pyramid_debugtoolbar + pyramid_zodbconn pyramid_tm tm.attempts = 3 - -zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 +zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 [pipeline:main] pipeline = - egg:repoze.zodbconn#closer tutorial [server:main] diff --git a/docs/tutorials/wiki/src/tests/production.ini b/docs/tutorials/wiki/src/tests/production.ini index 247d789a9..0462bae90 100644 --- a/docs/tutorials/wiki/src/tests/production.ini +++ b/docs/tutorials/wiki/src/tests/production.ini @@ -7,13 +7,12 @@ pyramid.debug_routematch = false pyramid.debug_templates = false pyramid.default_locale_name = en pyramid.includes = pyramid_tm + pyramid_zodbconn tm.attempts = 3 - -zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 +zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 [pipeline:main] pipeline = - egg:repoze.zodbconn#closer tutorial [server:main] diff --git a/docs/tutorials/wiki/src/tests/setup.py b/docs/tutorials/wiki/src/tests/setup.py index b0fd80edd..137b2ee42 100644 --- a/docs/tutorials/wiki/src/tests/setup.py +++ b/docs/tutorials/wiki/src/tests/setup.py @@ -8,7 +8,7 @@ CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() requires = [ 'pyramid', - 'repoze.zodbconn', + 'pyramid_zodbconn', 'pyramid_tm', 'pyramid_debugtoolbar', 'ZODB3', diff --git a/docs/tutorials/wiki/src/tests/tutorial/__init__.py b/docs/tutorials/wiki/src/tests/tutorial/__init__.py index f7dab5f47..5daff6b22 100644 --- a/docs/tutorials/wiki/src/tests/tutorial/__init__.py +++ b/docs/tutorials/wiki/src/tests/tutorial/__init__.py @@ -1,12 +1,16 @@ -from repoze.zodbconn.finder import PersistentApplicationFinder - from pyramid.config import Configurator +from pyramid_zodbconn import get_connection + from pyramid.authentication import AuthTktAuthenticationPolicy from pyramid.authorization import ACLAuthorizationPolicy from tutorial.models import appmaker from tutorial.security import groupfinder +def root_factory(request): + conn = get_connection(request) + return appmaker(conn.root()) + def main(global_config, **settings): """ This function returns a WSGI application. @@ -16,14 +20,7 @@ def main(global_config, **settings): authn_policy = AuthTktAuthenticationPolicy(secret='sosecret', callback=groupfinder) authz_policy = ACLAuthorizationPolicy() - zodb_uri = settings.get('zodb_uri', False) - if zodb_uri is False: - raise ValueError("No 'zodb_uri' in application configuration.") - - finder = PersistentApplicationFinder(zodb_uri, appmaker) - def get_root(request): - return finder(request.environ) - config = Configurator(root_factory=get_root, settings=settings, + config = Configurator(root_factory=root_factory, settings=settings, authentication_policy=authn_policy, authorization_policy=authz_policy) config.add_static_view('static', 'tutorial:static') diff --git a/docs/tutorials/wiki/src/tests/tutorial/tests.py b/docs/tutorials/wiki/src/tests/tutorial/tests.py index 86ddba7b7..b1d4e68c3 100644 --- a/docs/tutorials/wiki/src/tests/tutorial/tests.py +++ b/docs/tutorials/wiki/src/tests/tutorial/tests.py @@ -137,14 +137,12 @@ class FunctionalTests(unittest.TestCase): self.tmpdir = tempfile.mkdtemp() dbpath = os.path.join( self.tmpdir, 'test.db') - from repoze.zodbconn.uri import db_from_uri - db = db_from_uri('file://' + dbpath) - settings = { 'zodb_uri' : None } + uri = 'file://' + dbpath + settings = { 'zodbconn.uri' : uri , + 'pyramid.includes': ['pyramid_zodbconn', 'pyramid_tm'] } app = main({}, **settings) - from repoze.zodbconn.connector import Connector - app = Connector(app, db) - self.db = db + self.db = app.registry.zodb_database from webtest import TestApp self.testapp = TestApp(app) diff --git a/docs/tutorials/wiki/src/views/development.ini b/docs/tutorials/wiki/src/views/development.ini index 4759662ff..28775cba9 100644 --- a/docs/tutorials/wiki/src/views/development.ini +++ b/docs/tutorials/wiki/src/views/development.ini @@ -7,14 +7,13 @@ pyramid.debug_routematch = false pyramid.debug_templates = true pyramid.default_locale_name = en pyramid.includes = pyramid_debugtoolbar + pyramid_zodbconn pyramid_tm tm.attempts = 3 - -zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 +zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 [pipeline:main] pipeline = - egg:repoze.zodbconn#closer tutorial [server:main] diff --git a/docs/tutorials/wiki/src/views/production.ini b/docs/tutorials/wiki/src/views/production.ini index 247d789a9..0462bae90 100644 --- a/docs/tutorials/wiki/src/views/production.ini +++ b/docs/tutorials/wiki/src/views/production.ini @@ -7,13 +7,12 @@ pyramid.debug_routematch = false pyramid.debug_templates = false pyramid.default_locale_name = en pyramid.includes = pyramid_tm + pyramid_zodbconn tm.attempts = 3 - -zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 +zodbconn.uri = file://%(here)s/Data.fs?connection_cache_size=20000 [pipeline:main] pipeline = - egg:repoze.zodbconn#closer tutorial [server:main] diff --git a/docs/tutorials/wiki/src/views/setup.py b/docs/tutorials/wiki/src/views/setup.py index 315a11fe8..756618072 100644 --- a/docs/tutorials/wiki/src/views/setup.py +++ b/docs/tutorials/wiki/src/views/setup.py @@ -8,7 +8,7 @@ CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() requires = [ 'pyramid', - 'repoze.zodbconn', + 'pyramid_zodbconn', 'pyramid_tm', 'pyramid_debugtoolbar', 'ZODB3', diff --git a/docs/tutorials/wiki/src/views/tutorial/__init__.py b/docs/tutorials/wiki/src/views/tutorial/__init__.py index 04a01fead..70d48c8b2 100644 --- a/docs/tutorials/wiki/src/views/tutorial/__init__.py +++ b/docs/tutorials/wiki/src/views/tutorial/__init__.py @@ -1,18 +1,15 @@ from pyramid.config import Configurator -from repoze.zodbconn.finder import PersistentApplicationFinder +from pyramid_zodbconn import get_connection from tutorial.models import appmaker +def root_factory(request): + conn = get_connection(request) + return appmaker(conn.root()) + def main(global_config, **settings): """ This function returns a WSGI application. """ - zodb_uri = settings.get('zodb_uri', False) - if zodb_uri is False: - raise ValueError("No 'zodb_uri' in application configuration.") - - finder = PersistentApplicationFinder(zodb_uri, appmaker) - def get_root(request): - return finder(request.environ) - config = Configurator(root_factory=get_root, settings=settings) + config = Configurator(root_factory=root_factory, settings=settings) config.add_static_view('static', 'tutorial:static') config.scan('tutorial') return config.make_wsgi_app() |
