|
1 | | -#!/home/bernie/src/python23/dist/src/python |
| 1 | +"""Unit tests for socket timeout feature.""" |
2 | 2 |
|
3 | 3 | import unittest |
4 | 4 | import test_support |
5 | 5 |
|
6 | 6 | import time |
7 | 7 | import socket |
8 | 8 |
|
| 9 | + |
9 | 10 | class CreationTestCase(unittest.TestCase): |
10 | 11 | """Test Case for socket.gettimeout() and socket.settimeout()""" |
| 12 | + |
11 | 13 | def setUp(self): |
12 | 14 | self.__s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
13 | 15 |
|
@@ -39,9 +41,57 @@ def testReturnType(self): |
39 | 41 | self.assertEqual(type(self.__s.gettimeout()), type(1.0), |
40 | 42 | "return type of gettimeout() is not FloatType") |
41 | 43 |
|
| 44 | + self.__s.settimeout(None) |
| 45 | + self.assertEqual(type(self.__s.gettimeout()), type(None), |
| 46 | + "return type of gettimeout() is not None") |
| 47 | + |
| 48 | + def testTypeCheck(self): |
| 49 | + "Test type checking by settimeout" |
| 50 | + self.__s.settimeout(0) |
| 51 | + self.__s.settimeout(0L) |
| 52 | + self.__s.settimeout(0.0) |
| 53 | + self.__s.settimeout(None) |
| 54 | + self.assertRaises(TypeError, self.__s.settimeout, "") |
| 55 | + self.assertRaises(TypeError, self.__s.settimeout, u"") |
| 56 | + self.assertRaises(TypeError, self.__s.settimeout, ()) |
| 57 | + self.assertRaises(TypeError, self.__s.settimeout, []) |
| 58 | + self.assertRaises(TypeError, self.__s.settimeout, {}) |
| 59 | + self.assertRaises(TypeError, self.__s.settimeout, 0j) |
| 60 | + |
| 61 | + def testRangeCheck(self): |
| 62 | + "Test range checking by settimeout" |
| 63 | + self.assertRaises(ValueError, self.__s.settimeout, -1) |
| 64 | + self.assertRaises(ValueError, self.__s.settimeout, -1L) |
| 65 | + self.assertRaises(ValueError, self.__s.settimeout, -1.0) |
| 66 | + |
| 67 | + def testTimeoutThenoBlocking(self): |
| 68 | + "Test settimeout followed by setblocking" |
| 69 | + self.__s.settimeout(10) |
| 70 | + self.__s.setblocking(1) |
| 71 | + self.assertEqual(self.__s.gettimeout(), None) |
| 72 | + self.__s.setblocking(0) |
| 73 | + self.assertEqual(self.__s.gettimeout(), None) |
| 74 | + |
| 75 | + self.__s.settimeout(10) |
| 76 | + self.__s.setblocking(0) |
| 77 | + self.assertEqual(self.__s.gettimeout(), None) |
| 78 | + self.__s.setblocking(1) |
| 79 | + self.assertEqual(self.__s.gettimeout(), None) |
| 80 | + |
| 81 | + def testBlockingThenTimeout(self): |
| 82 | + "Test setblocking followed by settimeout" |
| 83 | + self.__s.setblocking(0) |
| 84 | + self.__s.settimeout(1) |
| 85 | + self.assertEqual(self.__s.gettimeout(), 1) |
| 86 | + |
| 87 | + self.__s.setblocking(1) |
| 88 | + self.__s.settimeout(1) |
| 89 | + self.assertEqual(self.__s.gettimeout(), 1) |
| 90 | + |
42 | 91 |
|
43 | 92 | class TimeoutTestCase(unittest.TestCase): |
44 | 93 | """Test Case for socket.socket() timeout functions""" |
| 94 | + |
45 | 95 | def setUp(self): |
46 | 96 | self.__s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
47 | 97 | self.__addr_remote = ('www.google.com', 80) |
|
0 commit comments