]> granicus.if.org Git - python/commitdiff
Issue #25210: Add some basic tests for the new exception message
authorBerker Peksag <berker.peksag@gmail.com>
Thu, 22 Oct 2015 04:49:36 +0000 (07:49 +0300)
committerBerker Peksag <berker.peksag@gmail.com>
Thu, 22 Oct 2015 04:49:36 +0000 (07:49 +0300)
Lib/test/test_richcmp.py

index 1582caad9742b1f06e8d86f5404730133715bdf6..58729a9fea62fa98b0c0346fe7bdce9dd103620d 100644 (file)
@@ -253,6 +253,31 @@ class MiscTest(unittest.TestCase):
         self.assertTrue(a != b)
         self.assertTrue(a < b)
 
+    def test_exception_message(self):
+        class Spam:
+            pass
+
+        tests = [
+            (lambda: 42 < None, r"'<' .* of 'int' and 'NoneType'"),
+            (lambda: None < 42, r"'<' .* of 'NoneType' and 'int'"),
+            (lambda: 42 > None, r"'>' .* of 'int' and 'NoneType'"),
+            (lambda: "foo" < None, r"'<' .* of 'str' and 'NoneType'"),
+            (lambda: "foo" >= 666, r"'>=' .* of 'str' and 'int'"),
+            (lambda: 42 <= None, r"'<=' .* of 'int' and 'NoneType'"),
+            (lambda: 42 >= None, r"'>=' .* of 'int' and 'NoneType'"),
+            (lambda: 42 < [], r"'<' .* of 'int' and 'list'"),
+            (lambda: () > [], r"'>' .* of 'tuple' and 'list'"),
+            (lambda: None >= None, r"'>=' .* of 'NoneType' and 'NoneType'"),
+            (lambda: Spam() < 42, r"'<' .* of 'Spam' and 'int'"),
+            (lambda: 42 < Spam(), r"'<' .* of 'int' and 'Spam'"),
+            (lambda: Spam() <= Spam(), r"'<=' .* of 'Spam' and 'Spam'"),
+        ]
+        for i, test in enumerate(tests):
+            with self.subTest(test=i):
+                with self.assertRaisesRegex(TypeError, test[1]):
+                    test[0]()
+
+
 class DictTest(unittest.TestCase):
 
     def test_dicts(self):