Commit fabe41fa authored by Tres Seaver's avatar Tres Seaver

Collector #2278: form ':record' objects did not implement enough of the mapping protocol.

parent 58af3054
......@@ -158,6 +158,9 @@ Zope Changes
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
......
......@@ -1558,7 +1558,7 @@ class record:
_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
......
......@@ -86,6 +86,28 @@ class RecordTests( unittest.TestCase ):
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):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment