summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES.txt8
-rw-r--r--repoze/bfg/tests/test_traversal.py16
-rw-r--r--repoze/bfg/traversal.py2
3 files changed, 25 insertions, 1 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index dec72da5e..8e291b9f3 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,11 @@
+Next release
+============
+
+Internal
+--------
+
+- Deal with a potential circref in the traversal module.
+
1.1a9 (2009-10-31)
==================
diff --git a/repoze/bfg/tests/test_traversal.py b/repoze/bfg/tests/test_traversal.py
index 451642e8c..ba9fc8b30 100644
--- a/repoze/bfg/tests/test_traversal.py
+++ b/repoze/bfg/tests/test_traversal.py
@@ -969,7 +969,23 @@ class TraverseTests(unittest.TestCase):
result = self._callFUT(model, '')
self.assertEqual(result['view_name'], '')
self.assertEqual(result['context'], model)
+
+class TestFakeRequest(unittest.TestCase):
+ def _makeOne(self, environ):
+ from repoze.bfg.traversal import FakeRequest
+ return FakeRequest(environ)
+
+ def test_environ(self):
+ environ = {'a':1, 'b':2}
+ request = self._makeOne(environ)
+ self.assertEqual(request.environ['a'], 1)
+ self.assertEqual(request.environ['b'], 2)
+ def test_asdict(self):
+ environ = {'a':1, 'b':2}
+ request = self._makeOne(environ)
+ self.assertEqual(request['a'], 1)
+ self.assertEqual(request['b'], 2)
def make_traverser(result):
class DummyTraverser(object):
diff --git a/repoze/bfg/traversal.py b/repoze/bfg/traversal.py
index d48627e7e..6eda82a92 100644
--- a/repoze/bfg/traversal.py
+++ b/repoze/bfg/traversal.py
@@ -633,6 +633,6 @@ def _join_path_tuple(tuple):
class FakeRequest(dict):
def __init__(self, environ):
+ self.environ = environ
self.update(environ)
- self.environ = self # XXX circref?