[Checkins] SVN: zope.app.wsgi/trunk/ Preparing release 3.9.0

Martijn Faassen faassen at startifact.com
Mon Apr 19 13:41:47 EDT 2010


Log message for revision 111125:
  Preparing release 3.9.0

Changed:
  U   zope.app.wsgi/trunk/CHANGES.txt
  U   zope.app.wsgi/trunk/setup.py
  U   zope.app.wsgi/trunk/src/zope/app/wsgi/testlayer.py

-=-
Modified: zope.app.wsgi/trunk/CHANGES.txt
===================================================================
--- zope.app.wsgi/trunk/CHANGES.txt	2010-04-19 16:18:24 UTC (rev 111124)
+++ zope.app.wsgi/trunk/CHANGES.txt	2010-04-19 17:41:46 UTC (rev 111125)
@@ -2,12 +2,19 @@
 CHANGES
 =======
 
-3.8.1 (unreleased)
+3.9.0 (2010-04-19)
 ------------------
 
-- Bugfix: initialize any <logger> defined in the config, as zope.app.server does
+- Return a FakeResponse object in zope.app.wsgi.testlayer.http,
+  so it becomes easier to port over tests from zope.app.testing's
+  HTTPCaller.
 
+- X-Powered-By header is now stripped by zope.app.wsgi.testlayer as
+  it is by zope.app.testing.
 
+- Bugfix: initialize any <logger> defined in the config, as
+  zope.app.server does.
+
 3.8.0 (2010-04-14)
 ------------------
 

Modified: zope.app.wsgi/trunk/setup.py
===================================================================
--- zope.app.wsgi/trunk/setup.py	2010-04-19 16:18:24 UTC (rev 111124)
+++ zope.app.wsgi/trunk/setup.py	2010-04-19 17:41:46 UTC (rev 111125)
@@ -23,7 +23,7 @@
 from setuptools import setup, find_packages
 
 setup(name='zope.app.wsgi',
-      version='3.8.1dev',
+      version = '3.9.0',
       url='http://pypi.python.org/pypi/zope.app.wsgi',
       license='ZPL 2.1',
       description='WSGI application for the zope.publisher',

Modified: zope.app.wsgi/trunk/src/zope/app/wsgi/testlayer.py
===================================================================
--- zope.app.wsgi/trunk/src/zope/app/wsgi/testlayer.py	2010-04-19 16:18:24 UTC (rev 111124)
+++ zope.app.wsgi/trunk/src/zope/app/wsgi/testlayer.py	2010-04-19 17:41:46 UTC (rev 111125)
@@ -161,6 +161,22 @@
     def getStatusString(self):
         return self.response_text.split('\n', 1)[0]
 
+    def getHeader(self, name, default=None):
+        without_body = self.response_text.split('\n\n', 1)[0]
+        headers_text = without_body.split('\n', 1)[1]
+        headers = headers_text.split('\n')
+        result = []
+        for header in headers:
+            header_name, header_value = header.split(': ', 1)
+            if name == header_name:
+                result.append(header_value)
+        if not result:
+            return default
+        elif len(result) == 1:
+            return result[0]
+        else:
+            return result
+
     def getBody(self):
         parts = self.response_text.split('\n\n', 1)
         if len(parts) < 2:



More information about the checkins mailing list