[Python-checkins] r54656 - sandbox/trunk/abc/abc.py sandbox/trunk/abc/test_abc.py (original) (raw)
guido.van.rossum python-checkins at python.org
Mon Apr 2 17:21:37 CEST 2007
- Previous message: [Python-checkins] buildbot failure in x86 cygwin trunk
- Next message: [Python-checkins] r54657 - in python/branches/release25-maint: Lib/test/test_array.py Misc/NEWS Modules/arraymodule.c
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: guido.van.rossum Date: Mon Apr 2 17:21:36 2007 New Revision: 54656
Modified: sandbox/trunk/abc/abc.py sandbox/trunk/abc/test_abc.py Log: Experiment with adapters.
Modified: sandbox/trunk/abc/abc.py
--- sandbox/trunk/abc/abc.py (original) +++ sandbox/trunk/abc/abc.py Mon Apr 2 17:21:36 2007 @@ -288,6 +288,9 @@
class _MappingView:
- def new(cls, *args):
return object.__new__(cls)
def __init__(self, mapping): self._mapping = mapping
@@ -544,3 +547,39 @@ if h == -1: h = -2 return h + + +### ADAPTERS ### + + +class AdaptToSequence(Sequence): +
- def new(cls, *args):
return Sequence.__new__(cls)
- def init(self, adaptee):
self.adaptee = adaptee
- def getitem(self, index):
return self.adaptee[index]
- def len(self):
return len(self.adaptee)
- +class AdaptToMapping(SizeableMapping):
- def new(cls, *args):
return SizeableMapping.__new__(cls)
- def init(self, adaptee):
self.adaptee = adaptee
- def getitem(self, index):
return self.adaptee[index]
- def len(self):
return len(self.adaptee)
- def iter(self):
return iter(self.adaptee)
Modified: sandbox/trunk/abc/test_abc.py
--- sandbox/trunk/abc/test_abc.py (original) +++ sandbox/trunk/abc/test_abc.py Mon Apr 2 17:21:36 2007 @@ -38,6 +38,33 @@ htl = hash(tuple(l)) self.assertEqual(hcl, htl, repr((l, hcl, htl)))
- def test_adapt_to_sequence(self):
a = abc.AdaptToSequence(range(10))
self.assertEqual(len(a), 10)
self.assertEqual(a[0], 0)
self.assertEqual(a[9], 9)
self.assertEqual(a[-1], 9)
self.assertEqual(list(a), range(10))
#self.assertEqual(a, range(10))
# Slicing isn't implemented correctly
- def test_adapt_to_mapping(self):
a = abc.AdaptToMapping({1: 10, 2: 20})
self.assertEqual(len(a), 2)
self.assertEqual(a[1], 10)
self.assertEqual(a.get(2), 20)
self.assertEqual(a.get(3), None)
self.assertEqual(a.get(4, 42), 42)
self.assertEqual(1 in a, True)
self.assertEqual(2 in a, True)
self.assertEqual(3 in a, False)
self.assertEqual(set(a.keys()), {1, 2})
self.assertEqual(set(a.items()), {(1, 10), (2, 20)})
self.assertEqual(set(a.values()), {10, 20})
#self.assertEqual(a.keys(), {1, 2})
#self.assertEqual(a.items(), {(1, 10), (2, 20)})
#self.assertEqual(a.values(), {10, 20})
if name == "main": unittest.main()
- Previous message: [Python-checkins] buildbot failure in x86 cygwin trunk
- Next message: [Python-checkins] r54657 - in python/branches/release25-maint: Lib/test/test_array.py Misc/NEWS Modules/arraymodule.c
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]