[Zope-Checkins] SVN: Zope/branches/2.9/ Collector #2287: form
':record' objects did not implement enough of the mapping protocol.
Tres Seaver
tseaver at palladion.com
Mon Sep 24 17:04:23 EDT 2007
Log message for revision 79911:
Collector #2287: form ':record' objects did not implement enough of the mapping protocol.
Changed:
U Zope/branches/2.9/doc/CHANGES.txt
U Zope/branches/2.9/lib/python/ZPublisher/HTTPRequest.py
U Zope/branches/2.9/lib/python/ZPublisher/tests/testHTTPRequest.py
-=-
Modified: Zope/branches/2.9/doc/CHANGES.txt
===================================================================
--- Zope/branches/2.9/doc/CHANGES.txt 2007-09-24 21:04:11 UTC (rev 79910)
+++ Zope/branches/2.9/doc/CHANGES.txt 2007-09-24 21:04:22 UTC (rev 79911)
@@ -8,6 +8,9 @@
Bugs fixed
+ - Collector #2287: form ':record' objects did not implement enough
+ of the mapping protocol.
+
- Collector #2346: username logging in FCGI crashed the server
- Collector #2332: SessionDataManger: don't swallow ConflictErrors
Modified: Zope/branches/2.9/lib/python/ZPublisher/HTTPRequest.py
===================================================================
--- Zope/branches/2.9/lib/python/ZPublisher/HTTPRequest.py 2007-09-24 21:04:11 UTC (rev 79910)
+++ Zope/branches/2.9/lib/python/ZPublisher/HTTPRequest.py 2007-09-24 21:04:22 UTC (rev 79911)
@@ -1515,7 +1515,7 @@
_guarded_writes = 1
def __getattr__(self, key, default=None):
- if key in ('get', 'keys', 'items', 'values', 'copy', 'has_key'):
+ if key in ('get', 'keys', 'items', 'values', 'copy', 'has_key', '__contains__', '__iter__', '__len__'):
return getattr(self.__dict__, key)
raise AttributeError, key
Modified: Zope/branches/2.9/lib/python/ZPublisher/tests/testHTTPRequest.py
===================================================================
--- Zope/branches/2.9/lib/python/ZPublisher/tests/testHTTPRequest.py 2007-09-24 21:04:11 UTC (rev 79910)
+++ Zope/branches/2.9/lib/python/ZPublisher/tests/testHTTPRequest.py 2007-09-24 21:04:22 UTC (rev 79911)
@@ -77,7 +77,29 @@
d = eval( r )
self.assertEqual( d, record.__dict__ )
+ def test_contains(self):
+ from ZPublisher.HTTPRequest import record
+ record = record()
+ record.a = 1
+ self.assertTrue('a' in record)
+ def test_iter(self):
+ from ZPublisher.HTTPRequest import record
+ record = record()
+ record.a = 1
+ record.b = 2
+ record.c = 3
+ for k in record:
+ self.assertTrue(k in ('a','b','c'))
+
+ def test_len(self):
+ from ZPublisher.HTTPRequest import record
+ record = record()
+ record.a = 1
+ record.b = 2
+ record.c = 3
+ self.assertEqual(len(record), 3)
+
class ProcessInputsTests(unittest.TestCase):
def _getHTTPRequest(self, env):
from ZPublisher.HTTPRequest import HTTPRequest
More information about the Zope-Checkins
mailing list