[Zope-Checkins] SVN: Zope/branches/2.9/lib/python/ZPublisher/ Also prevent publishing of Python 2.4's 'set' and 'frozenset' types.

Stefan H. Holek stefan at epy.co.at
Sun Feb 19 13:44:27 EST 2006


Log message for revision 41705:
  Also prevent publishing of Python 2.4's 'set' and 'frozenset' types.
  

Changed:
  U   Zope/branches/2.9/lib/python/ZPublisher/BaseRequest.py
  U   Zope/branches/2.9/lib/python/ZPublisher/tests/testBaseRequest.py

-=-
Modified: Zope/branches/2.9/lib/python/ZPublisher/BaseRequest.py
===================================================================
--- Zope/branches/2.9/lib/python/ZPublisher/BaseRequest.py	2006-02-19 16:10:38 UTC (rev 41704)
+++ Zope/branches/2.9/lib/python/ZPublisher/BaseRequest.py	2006-02-19 18:44:27 UTC (rev 41705)
@@ -579,6 +579,10 @@
     if hasattr(types, name):
         itypes[getattr(types, name)] = 0
 
+# Python 2.4 no longer maintains the types module.
+itypes[set] = 0
+itypes[frozenset] = 0
+
 def typeCheck(obj, deny=itypes):
     # Return true if its ok to publish the type, false otherwise.
     return deny.get(type(obj), 1)

Modified: Zope/branches/2.9/lib/python/ZPublisher/tests/testBaseRequest.py
===================================================================
--- Zope/branches/2.9/lib/python/ZPublisher/tests/testBaseRequest.py	2006-02-19 16:10:38 UTC (rev 41704)
+++ Zope/branches/2.9/lib/python/ZPublisher/tests/testBaseRequest.py	2006-02-19 18:44:27 UTC (rev 41705)
@@ -102,6 +102,8 @@
         self.f1.simpleList = []
         self.f1.simpleBoolean = True
         self.f1.simpleComplex = complex(1)
+        self.f1.simpleSet = set([])
+        self.f1.simpleFrozenSet = frozenset([])
 
     def makeBaseRequest(self):
         response = HTTPResponse()
@@ -239,7 +241,13 @@
         self.assertRaises(NotFound, r.traverse, 'folder/simpleBoolean')
         self.assertRaises(NotFound, r.traverse, 'folder/simpleComplex')
 
+    def test_traverse_set_type(self):
+        from ZPublisher import NotFound
+        r = self.makeBaseRequest()
+        self.assertRaises(NotFound, r.traverse, 'folder/simpleSet')
+        self.assertRaises(NotFound, r.traverse, 'folder/simpleFrozenSet')
 
+
 def test_suite():
     return TestSuite( ( makeSuite(TestBaseRequest), ) )
 



More information about the Zope-Checkins mailing list