Log message for revision 79930: Collector #2278: form ':record' objects did not implement enough of the mapping protocol.
Changed: U Zope/trunk/doc/CHANGES.txt U Zope/trunk/lib/python/ZPublisher/HTTPRequest.py U Zope/trunk/lib/python/ZPublisher/tests/testHTTPRequest.py -=- Modified: Zope/trunk/doc/CHANGES.txt =================================================================== --- Zope/trunk/doc/CHANGES.txt 2007-09-24 21:59:36 UTC (rev 79929) +++ Zope/trunk/doc/CHANGES.txt 2007-09-24 22:11:21 UTC (rev 79930) @@ -158,6 +158,9 @@ Bugs Fixed + - Collector #2278: form ':record' objects did not implement enough + of the mapping protocol. + - Collector #2352: fix in OFS.Traversable - Collector #2346: username logging in FCGI crashed the server Modified: Zope/trunk/lib/python/ZPublisher/HTTPRequest.py =================================================================== --- Zope/trunk/lib/python/ZPublisher/HTTPRequest.py 2007-09-24 21:59:36 UTC (rev 79929) +++ Zope/trunk/lib/python/ZPublisher/HTTPRequest.py 2007-09-24 22:11:21 UTC (rev 79930) @@ -1558,7 +1558,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/trunk/lib/python/ZPublisher/tests/testHTTPRequest.py =================================================================== --- Zope/trunk/lib/python/ZPublisher/tests/testHTTPRequest.py 2007-09-24 21:59:36 UTC (rev 79929) +++ Zope/trunk/lib/python/ZPublisher/tests/testHTTPRequest.py 2007-09-24 22:11:21 UTC (rev 79930) @@ -86,7 +86,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 _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins