[Python-checkins] python/dist/src/Lib/test test_string.py, 1.25, 1.26

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Tue Aug 24 01:23:56 CEST 2004


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20193/Lib/test
Modified Files:
	test_string.py 
Log Message:
SF Patch #1007087: Return new string for single subclass joins (Bug #1001011)
(Patch contributed by Nick Coghlan.)
Now joining string subtypes will always return a string.
Formerly, if there were only one item, it was returned unchanged.
Index: test_string.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_string.py,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- test_string.py	1 May 2003 17:45:50 -0000	1.25
+++ test_string.py	23 Aug 2004 23:23:53 -0000	1.26
@@ -52,6 +52,29 @@
 self.checkraises(TypeError, string_tests.BadSeq1(), 'join', ' ')
 self.checkequal('a b c', string_tests.BadSeq2(), 'join', ' ')
 
+ def test_bug1001011(self):
+ # Make sure join returns a NEW object for single item sequences
+ # involving a subclass
+ # Make sure that it is of the appropriate type
+ # Check the optimisation still occurs for standard objects
+ class str_subclass(str): pass
+ s1 = str_subclass('abcd')
+ s2 = ''.join([s1])
+ self.failIf(s1 is s2)
+ self.assertEqual(type(s2), type(''))
+ s3 = 'abcd'
+ s4 = ''.join([s3])
+ self.failUnless(s3 is s4)
+ if test_support.have_unicode:
+ class unicode_subclass(unicode): pass
+ u1 = unicode_subclass(u'abcd')
+ u2 = ''.join([u1])
+ self.failIf(u1 is u2)
+ self.assertEqual(type(u2), type(u''))
+ u3 = u'abcd'
+ u4 = ''.join([u3])
+ self.failUnless(u3 is u4)
+
 class ModuleTest(unittest.TestCase):
 
 def test_attrs(self):


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /