Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

- The ``Configurator.add_route`` method allowed two routes with the same

  route to be added without an intermediate ``config.commit()``.  If you now
  receive a ``ConfigurationError`` at startup time that appears to be
  ``add_route`` related, you'll need to either a) ensure that all of your
  route names are unique or b) call ``config.commit()`` before adding a
  second route with the name of a previously added name or c) use a
  Configurator that works in ``autocommit`` mode.
  • Loading branch information...
commit 94ab244f121fa1bf8df57f75fad9da5f5f39c594 1 parent a7ad42e
@mcdonc mcdonc authored
View
11 CHANGES.txt
@@ -19,6 +19,17 @@ Behavior Changes
event object) ensure no value already exists in the renderer globals
dictionary before setting an overriding value.
+Bug Fixes
+---------
+
+- The ``Configurator.add_route`` method allowed two routes with the same
+ route to be added without an intermediate ``config.commit()``. If you now
+ receive a ``ConfigurationError`` at startup time that appears to be
+ ``add_route`` related, you'll need to either a) ensure that all of your
+ route names are unique or b) call ``config.commit()`` before adding a
+ second route with the name of a previously added name or c) use a
+ Configurator that works in ``autocommit`` mode.
+
1.1b1 (2011-07-10)
==================
View
2  TODO.txt
@@ -4,8 +4,6 @@ Pyramid TODOs
Must-Have
---------
-- add_route discriminator wrong
-
- tutorial models.initialize_sql doesn't match scaffold
(DBSession.rollback()/transaction.abort() in scaffold vs. "pass" in
tutorial)
View
9 docs/whatsnew-1.1.rst
@@ -497,6 +497,15 @@ Deprecations and Behavior Differences
exists in the renderer globals dictionary before setting an overriding
value.
+- The :meth:`pyramid.config.Configurator.add_route` method allowed two routes
+ with the same route to be added without an intermediate call to
+ :meth:`pyramid.config.Configurator.commit``. If you now receive a
+ ``ConfigurationError`` at startup time that appears to be ``add_route``
+ related, you'll need to either a) ensure that all of your route names are
+ unique or b) call ``config.commit()`` before adding a second route with the
+ name of a previously added name or c) use a Configurator that works in
+ ``autocommit`` mode.
+
Dependency Changes
------------------
View
6 pyramid/config.py
@@ -1931,11 +1931,7 @@ def add_route(self,
if pattern is None:
raise ConfigurationError('"pattern" argument may not be None')
- discriminator = ['route', name, xhr, request_method, path_info,
- request_param, header, accept]
- discriminator.extend(sorted(custom_predicates))
- discriminator = tuple(discriminator)
-
+ discriminator = ('route', name)
self.action(discriminator, None)
return mapper.connect(name, pattern, factory, predicates=predicates,
View
7 pyramid/tests/test_config.py
@@ -1998,6 +1998,13 @@ def test_add_route_defaults(self):
self._assertRoute(config, 'name', 'path')
self.assertEqual(route.name, 'name')
+ def test_add_route_discriminator(self):
+ config = self._makeOne()
+ route = config.add_route('name', 'path')
+ self._assertRoute(config, 'name', 'path')
+ self.assertEqual(route.name, 'name')
+ self.assertEqual(config._ctx.actions[-1][0], ('route', 'name'))
+
def test_add_route_with_factory(self):
config = self._makeOne(autocommit=True)
factory = object()
Please sign in to comment.
Something went wrong with that request. Please try again.