[pypy-svn] r58776 - in pypy/branch/2.5-merge/pypy/module/operator: . test
jlg at codespeak.net
jlg at codespeak.net
Tue Oct 7 17:45:06 CEST 2008
Author: jlg
Date: Tue Oct 7 17:45:05 2008
New Revision: 58776
Modified:
pypy/branch/2.5-merge/pypy/module/operator/app_operator.py
pypy/branch/2.5-merge/pypy/module/operator/test/test_operator.py
Log:
isSequenceType() returns False with mapping type
Modified: pypy/branch/2.5-merge/pypy/module/operator/app_operator.py
==============================================================================
--- pypy/branch/2.5-merge/pypy/module/operator/app_operator.py (original)
+++ pypy/branch/2.5-merge/pypy/module/operator/app_operator.py Tue Oct 7 17:45:05 2008
@@ -48,7 +48,7 @@
def isSequenceType(obj,):
'isSequenceType(a) -- Return True if a has a sequence type, False otherwise.'
- return hasattr(obj, '__getitem__')
+ return hasattr(obj, '__getitem__') and not hasattr(obj, 'keys')
def repeat(obj, num):
'repeat(a, b) -- Return a * b, where a is a sequence, and b is an integer.'
Modified: pypy/branch/2.5-merge/pypy/module/operator/test/test_operator.py
==============================================================================
--- pypy/branch/2.5-merge/pypy/module/operator/test/test_operator.py (original)
+++ pypy/branch/2.5-merge/pypy/module/operator/test/test_operator.py Tue Oct 7 17:45:05 2008
@@ -129,3 +129,15 @@
assert operator.repeat(a, 0) == []
raises(TypeError, operator.repeat, 6, 7)
+ def test_isSequenceType(self):
+ import operator
+
+ raises(TypeError, operator.isSequenceType)
+ assert operator.isSequenceType(dir())
+ assert operator.isSequenceType(())
+ assert operator.isSequenceType(xrange(10))
+ assert operator.isSequenceType('yeahbuddy')
+ assert not operator.isSequenceType(3)
+ class Dict(dict): pass
+ assert not operator.isSequenceType(Dict())
+
More information about the Pypy-commit
mailing list