Orignal patch (without tests) by Leif Walsh.
for i in xrange(-len(t), len(t)-1):
self.assertEqual(t[i], astuple[i])
+ def test_tuple_subclass(self):
+ # Issue 1820
+ t = time.localtime()
+ s = ('%s ' * len(t)) % t # This used to fail because t was not a tuple subclass
+ self.assert_(isinstance(t, tuple))
+
def test_repr(self):
t = time.gmtime()
self.assert_(repr(t))
Charles Waldman
Richard Walker
Larry Wall
+Leif Walsh
Greg Ward
Barry Warsaw
Steve Waterbury
Extension Modules
-----------------
+- Issue 1820: structseq objects did not subclass from tuple so they did
+ not pass isinstance(t, tuple) tests and they could not be passed to
+ the % string formatting operator as an input tuple.
+
- _winreg's HKEY object has gained __enter__ and __exit__ methods to support
the context manager protocol. The _winreg module also gained a new function
``ExpandEnvironmentStrings`` to expand REG_EXPAND_SZ keys.
structseq_methods, /* tp_methods */
NULL, /* tp_members */
0, /* tp_getset */
- 0, /* tp_base */
+ &PyTuple_Type, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */