]> granicus.if.org Git - python/commitdiff
check that exception messages are not empty (#22379)
authorBenjamin Peterson <benjamin@python.org>
Sun, 28 Sep 2014 16:56:42 +0000 (12:56 -0400)
committerBenjamin Peterson <benjamin@python.org>
Sun, 28 Sep 2014 16:56:42 +0000 (12:56 -0400)
Patch by Yongzhi Pan.

Lib/test/string_tests.py
Lib/test/test_bytes.py
Lib/test/test_userstring.py
Misc/ACKS

index 5ed01f2979952af74bd80c29a810366719c4b21a..242a931ec6a41dd5466d6a64517f7f2edc2b3e9b 100644 (file)
@@ -1,5 +1,5 @@
 """
-Common tests shared by test_str, test_unicode, test_userstring and test_string.
+Common tests shared by test_unicode, test_userstring and test_string.
 """
 
 import unittest, string, sys, struct
@@ -79,11 +79,9 @@ class BaseTest:
     def checkraises(self, exc, obj, methodname, *args):
         obj = self.fixtype(obj)
         args = self.fixtype(args)
-        self.assertRaises(
-            exc,
-            getattr(obj, methodname),
-            *args
-        )
+        with self.assertRaises(exc) as cm:
+            getattr(obj, methodname)(*args)
+        self.assertNotEqual(str(cm.exception), '')
 
     # call obj.method(*args) without any checks
     def checkcall(self, obj, methodname, *args):
@@ -1119,8 +1117,7 @@ class MixinStrUnicodeUserStringTest:
     def test_join(self):
         # join now works with any sequence type
         # moved here, because the argument order is
-        # different in string.join (see the test in
-        # test.test_string.StringTest.test_join)
+        # different in string.join
         self.checkequal('a b c d', ' ', 'join', ['a', 'b', 'c', 'd'])
         self.checkequal('abcd', '', 'join', ('a', 'b', 'c', 'd'))
         self.checkequal('bd', '', 'join', ('', 'b', '', 'd'))
@@ -1140,6 +1137,7 @@ class MixinStrUnicodeUserStringTest:
         self.checkequal('a b c', ' ', 'join', BadSeq2())
 
         self.checkraises(TypeError, ' ', 'join')
+        self.checkraises(TypeError, ' ', 'join', None)
         self.checkraises(TypeError, ' ', 'join', 7)
         self.checkraises(TypeError, ' ', 'join', [1, 2, bytes()])
         try:
index 43b6c824a8383a33567b734c9434d8895e9d795f..1a351a53725d106303c7963081275e525e863e1a 100644 (file)
@@ -298,6 +298,7 @@ class BaseBytesTest:
         seq = [b"abc"] * 1000
         expected = b"abc" + b".:abc" * 999
         self.assertEqual(dot_join(seq), expected)
+        self.assertRaises(TypeError, self.type2test(b" ").join, None)
         # Error handling and cleanup when some item in the middle of the
         # sequence has the wrong type.
         with self.assertRaises(TypeError):
index 34c629cb764ec6fe55afa709a35dc56375095d1c..9bc8edd99d2eb9595cc4df4c5c902a9c983f144a 100644 (file)
@@ -28,14 +28,12 @@ class UserStringTest(
             realresult
         )
 
-    def checkraises(self, exc, object, methodname, *args):
-        object = self.fixtype(object)
+    def checkraises(self, exc, obj, methodname, *args):
+        obj = self.fixtype(obj)
         # we don't fix the arguments, because UserString can't cope with it
-        self.assertRaises(
-            exc,
-            getattr(object, methodname),
-            *args
-        )
+        with self.assertRaises(exc) as cm:
+            getattr(obj, methodname)(*args)
+        self.assertNotEqual(str(cm.exception), '')
 
     def checkcall(self, object, methodname, *args):
         object = self.fixtype(object)
index c13e4cd3ac9c6acdf1d087273d17a969a605c4ae..c91d6432480634a5d717160f15bd7d9e50cfe846 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1010,6 +1010,7 @@ Mike Pall
 Todd R. Palmer
 Juan David Ibáñez Palomar
 Jan Palus
+Yongzhi Pan
 Martin Panter
 Mathias Panzenböck
 M. Papillon