diff --git a/CHANGES.txt b/CHANGES.txt index d754182e..778d699f 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,8 @@ +Next release +------------ + +- If ``request.remote_addr`` is ``None``, disable the toolbar. + 1.0 (2012-03-17) ---------------- diff --git a/pyramid_debugtoolbar/tests/test_toolbar.py b/pyramid_debugtoolbar/tests/test_toolbar.py index 285cd745..1f04060f 100644 --- a/pyramid_debugtoolbar/tests/test_toolbar.py +++ b/pyramid_debugtoolbar/tests/test_toolbar.py @@ -151,8 +151,6 @@ def handler(request): def _callFUT(self, request, handler=None): registry = self.config.registry - if request.remote_addr is None: - request.remote_addr = '127.0.0.1' from pyramid_debugtoolbar.toolbar import toolbar_tween_factory if handler is None: handler = self._makeHandler() @@ -161,6 +159,7 @@ def _callFUT(self, request, handler=None): def test_it_startswith_root_path(self): request = Request.blank('/_debug_toolbar') + request.remote_addr = '127.0.0.1' result = self._callFUT(request) self.assertFalse(hasattr(request, 'debug_toolbar')) self.assertTrue(result is self.response) @@ -172,6 +171,13 @@ def test_it_bad_remote_addr(self): self.assertFalse(hasattr(request, 'debug_toolbar')) self.assertTrue(result is self.response) + def test_it_remote_addr_is_None(self): + request = Request.blank('/') + request.remote_addr = None + result = self._callFUT(request) + self.assertFalse(hasattr(request, 'debug_toolbar')) + self.assertTrue(result is self.response) + def test_it_remote_addr_mask(self): self.config.registry.settings['debugtoolbar.hosts'] = ['127.0.0.0/24'] request = Request.blank('/') @@ -192,6 +198,7 @@ def test_it_calls_wrap_handler(self): request = Request.blank('/') self.config.registry.settings['debugtoolbar.panels'] = [ DummyPanel ] request.registry = self.config.registry + request.remote_addr = '127.0.0.1' result = self._callFUT(request, handler) self.assertFalse(hasattr(request, 'debug_toolbar')) self.assertTrue(result is self.response) @@ -200,6 +207,7 @@ def test_it_calls_wrap_handler(self): def test_it_raises_exception_no_intercept_exc(self): request = Request.blank('/') + request.remote_addr = '127.0.0.1' def handler(request): raise NotImplementedError request.registry = self.config.registry @@ -213,6 +221,7 @@ def handler(request): self.config.registry.settings['debugtoolbar.secret'] = 'abc' self.config.add_route('debugtoolbar.exception', '/exception') request.registry = self.config.registry + request.remote_addr = '127.0.0.1' response = self._callFUT(request, handler) self.assertEqual(len(request.exc_history.tracebacks), 1) self.assertFalse(hasattr(request, 'debug_toolbar')) @@ -220,6 +229,7 @@ def handler(request): def test_it_intercept_redirect_nonredirect_code(self): request = Request.blank('/') + request.remote_addr = '127.0.0.1' self.config.registry.settings['debugtoolbar.intercept_redirects'] = True request.registry = self.config.registry result = self._callFUT(request) @@ -231,6 +241,7 @@ def test_it_intercept_redirect(self): def handler(request): return response request = Request.blank('/') + request.remote_addr = '127.0.0.1' request.registry = self.config.registry self.config.registry.settings['debugtoolbar.intercept_redirects'] = True result = self._callFUT(request, handler) diff --git a/pyramid_debugtoolbar/toolbar.py b/pyramid_debugtoolbar/toolbar.py index 15b065cc..6c5b6d18 100644 --- a/pyramid_debugtoolbar/toolbar.py +++ b/pyramid_debugtoolbar/toolbar.py @@ -101,7 +101,7 @@ def toolbar_tween(request): request.exc_history = exc_history remote_addr = request.remote_addr - if request.path.startswith(root_path): + if remote_addr is None or request.path.startswith(root_path): return handler(request) else: for host in hosts: