]> granicus.if.org Git - python/commitdiff
Added tests for implementation error we came up with in the need for speed sprint.
authorAndrew Dalke <dalke@dalkescientific.com>
Thu, 25 May 2006 16:30:52 +0000 (16:30 +0000)
committerAndrew Dalke <dalke@dalkescientific.com>
Thu, 25 May 2006 16:30:52 +0000 (16:30 +0000)
Lib/test/string_tests.py

index 3a5fbfefb58d6d40db0e123fedfdd00f031b97bf..f76a9ebe08546648edb8c7f4c3b88fef571083e7 100644 (file)
@@ -882,6 +882,25 @@ class MixinStrUnicodeUserStringTest:
                 else:
                     self.checkcall(format, "__mod__", value)
 
+    def test_inplace_rewrites(self):
+        # Check that strings don't copy and modify cached single-character strings
+        self.checkequal('a', 'A', 'lower')
+        self.checkequal(True, 'A', 'isupper')
+        self.checkequal('A', 'a', 'upper')
+        self.checkequal(True, 'a', 'islower')
+        self.checkequal('a', 'A', 'replace', 'A', 'a')
+        self.checkequal(True, 'A', 'isupper')
+
+        self.checkequal('A', 'a', 'capitalize')
+        self.checkequal(True, 'a', 'islower')
+        
+        self.checkequal('A', 'a', 'swapcase')
+        self.checkequal(True, 'a', 'islower')
+
+        self.checkequal('A', 'a', 'title')
+        self.checkequal(True, 'a', 'islower')
+
 
 class MixinStrStringUserStringTest:
     # Additional tests for 8bit strings, i.e. str, UserString and