[Repoze-checkins] r1094 - in repoze.debug/trunk: . repoze/debug

Chris McDonough chrism at agendaless.com
Sun Jun 15 11:42:29 EDT 2008


Author: Chris McDonough <chrism at agendaless.com>
Date: Sun Jun 15 11:42:28 2008
New Revision: 1094

Log:
  - Add source url to response logging.



Modified:
   repoze.debug/trunk/CHANGES.txt
   repoze.debug/trunk/repoze/debug/responselogger.py
   repoze.debug/trunk/repoze/debug/tests.py

Modified: repoze.debug/trunk/CHANGES.txt
==============================================================================
--- repoze.debug/trunk/CHANGES.txt	(original)
+++ repoze.debug/trunk/CHANGES.txt	Sun Jun 15 11:42:28 2008
@@ -1,3 +1,7 @@
+Next release
+
+  - Add source url to response logging.
+
 0.2 (2008/06/14)
 
   - Add warning if content-length != body length.

Modified: repoze.debug/trunk/repoze/debug/responselogger.py
==============================================================================
--- repoze.debug/trunk/repoze/debug/responselogger.py	(original)
+++ repoze.debug/trunk/repoze/debug/responselogger.py	Sun Jun 15 11:42:28 2008
@@ -13,8 +13,9 @@
     def __call__(self, environ, start_response):
         rnd = random.randint(0, sys.maxint-1)
 
-        environ['repoze.debug.id'] = rnd
-        environ['repoze.debug.request_begin'] = time.time()
+        debug = environ['repoze.debug'] = {}
+        debug['id'] = rnd
+        debug['begin'] = time.time()
 
         self.log_request(environ)
 
@@ -48,11 +49,14 @@
     def log_request(self, environ):
         supplement = Supplement(self, environ)
         request_data = supplement.extraData()
-        request_id = environ['repoze.debug.id']
+        debug = environ['repoze.debug']
+        request_id = debug['id']
         out = []
         t = time.ctime()
         out.append('--- REQUEST %s at %s ---' % (request_id, t))
-        out.append('URL: %s' % supplement.source_url)
+        url = supplement.source_url
+        debug['url'] = url
+        out.append('URL: %s' % url)
         out.append('CGI Variables')
         items = request_data[('extra', 'CGI Variables')].items()
         items.sort()
@@ -66,17 +70,20 @@
         self.logger.info('\n'.join(out))
 
     def log_response(self, environ, status, headers, body):
-        request_id = environ.get('repoze.debug.id')
+        debug = environ.get('repoze.debug', {})
+        request_id = debug.get('id')
         out = [] 
         t = time.ctime()
         end = time.time()
-        start = environ.get('repoze.debug.request_begin')
+        start = debug.get('begin')
         if start:
             duration = end - start
         else:
             duration = '??'
         out.append('--- RESPONSE %s at %s (%0.4f seconds) ---' % (
             request_id, t, duration))
+        url = debug.get('url', '??')
+        out.append('URL: %s' % url)
         out.append('Status: %s' % status)
         out.append('Response Headers')
         cl = None

Modified: repoze.debug/trunk/repoze/debug/tests.py
==============================================================================
--- repoze.debug/trunk/repoze/debug/tests.py	(original)
+++ repoze.debug/trunk/repoze/debug/tests.py	Sun Jun 15 11:42:28 2008
@@ -61,6 +61,18 @@
         self.assertEqual(len(logger.logged), 2)
         self.failUnless('WARNING-1' in logger.logged[1])
 
+    def test_call_sourceurl_in_response(self):
+        body = ['thebody']
+        app = DummyApp(body, '200 OK', [('Content-Length', '1')])
+        logger = FakeLogger()
+        mw = self._makeOne(app, 1, logger)
+        environ = self._makeEnviron()
+        start_response = FakeStartResponse()
+        app_iter = mw(environ, start_response)
+        self.assertEqual(''.join(app_iter), 'thebody')
+        self.assertEqual(len(logger.logged), 2)
+        self.failUnless('URL: http://localhost' in logger.logged[1])
+
 class TestMakeMiddleware(unittest.TestCase):
     def _getFUT(self):
         from repoze.debug.responselogger import make_middleware


More information about the Repoze-checkins mailing list