]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
#5421: merge with 3.1.
authorEzio Melotti <ezio.melotti@gmail.com>
Sat, 7 May 2011 16:50:28 +0000 (19:50 +0300)
committerEzio Melotti <ezio.melotti@gmail.com>
Sat, 7 May 2011 16:50:28 +0000 (19:50 +0300)
1  2 
Lib/test/test_socket.py

index e745502fce7fbbbf5b621e278dfc007071025d8c,6a9497bc7d2f0054c71e408b23685dac3a0f1611..a948541825ab7e150bab7bc6f070702d6de7a163
@@@ -295,6 -274,36 +295,50 @@@ class GeneralModuleTests(unittest.TestC
          self.assertRaises(socket.error, raise_gaierror,
                                "Error raising socket exception.")
  
 -        with self.assertRaises(TypeError):
+     def testSendtoErrors(self):
+         # Testing that sendto doens't masks failures. See #10169.
+         s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+         self.addCleanup(s.close)
+         s.bind(('', 0))
+         sockname = s.getsockname()
+         # 2 args
 -        with self.assertRaises(TypeError):
++        with self.assertRaises(TypeError) as cm:
+             s.sendto('\u2620', sockname)
 -        with self.assertRaises(TypeError):
++        self.assertEqual(str(cm.exception),
++                         "'str' does not support the buffer interface")
++        with self.assertRaises(TypeError) as cm:
+             s.sendto(5j, sockname)
 -        with self.assertRaises(TypeError):
++        self.assertEqual(str(cm.exception),
++                         "'complex' does not support the buffer interface")
++        with self.assertRaises(TypeError) as cm:
+             s.sendto(b'foo', None)
++        self.assertIn('not NoneType',str(cm.exception))
+         # 3 args
 -        with self.assertRaises(TypeError):
++        with self.assertRaises(TypeError) as cm:
+             s.sendto('\u2620', 0, sockname)
 -        with self.assertRaises(TypeError):
++        self.assertEqual(str(cm.exception),
++                         "'str' does not support the buffer interface")
++        with self.assertRaises(TypeError) as cm:
+             s.sendto(5j, 0, sockname)
 -        with self.assertRaises(TypeError):
++        self.assertEqual(str(cm.exception),
++                         "'complex' does not support the buffer interface")
++        with self.assertRaises(TypeError) as cm:
+             s.sendto(b'foo', 0, None)
 -        with self.assertRaises(TypeError):
++        self.assertIn('not NoneType', str(cm.exception))
++        with self.assertRaises(TypeError) as cm:
+             s.sendto(b'foo', 'bar', sockname)
 -        with self.assertRaises(TypeError):
++        self.assertIn('an integer is required', str(cm.exception))
++        with self.assertRaises(TypeError) as cm:
+             s.sendto(b'foo', None, None)
++        self.assertIn('an integer is required', str(cm.exception))
+         # wrong number of args
 -        with self.assertRaises(TypeError):
++        with self.assertRaises(TypeError) as cm:
+             s.sendto(b'foo')
++        self.assertIn('(1 given)', str(cm.exception))
++        with self.assertRaises(TypeError) as cm:
+             s.sendto(b'foo', 0, sockname, 4)
++        self.assertIn('(4 given)', str(cm.exception))
      def testCrucialConstants(self):
          # Testing for mission critical constants
          socket.AF_INET