diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2011-01-03 14:30:41 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2011-01-03 14:30:41 (GMT) |
commit | 5c85e3f390576e9ddcc2eaa714d54bf14e759f3a (patch) | |
tree | b852c2a96dd7512dfb89ecfad2e6bfa03714248e | |
parent | 109761ba076842a9ab4343f083d46658829067b9 (diff) | |
download | cpython-5c85e3f390576e9ddcc2eaa714d54bf14e759f3a.zip cpython-5c85e3f390576e9ddcc2eaa714d54bf14e759f3a.tar.gz cpython-5c85e3f390576e9ddcc2eaa714d54bf14e759f3a.tar.bz2 |
test_timeout: move testRecvfromTimeout() to a UDP-specific test case
Fix a ResourceWarning(unclosed socket).
-rw-r--r-- | Lib/test/test_timeout.py | 60 |
1 files changed, 38 insertions, 22 deletions
diff --git a/Lib/test/test_timeout.py b/Lib/test/test_timeout.py index bbcdc25..618b0e4 100644 --- a/Lib/test/test_timeout.py +++ b/Lib/test/test_timeout.py @@ -88,8 +88,6 @@ class CreationTestCase(unittest.TestCase): class TimeoutTestCase(unittest.TestCase): - """Test case for socket.socket() timeout functions""" - # There are a number of tests here trying to make sure that an operation # doesn't take too much longer than expected. But competing machine # activity makes it inevitable that such tests will fail at times. @@ -98,14 +96,22 @@ class TimeoutTestCase(unittest.TestCase): # solution. fuzz = 2.0 + localhost = '127.0.0.1' + def setUp(self): - self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.addr_remote = ('www.python.org.', 80) - self.localhost = '127.0.0.1' + raise NotImplementedError() def tearDown(self): self.sock.close() + +class TCPTimeoutTestCase(TimeoutTestCase): + """TCP test case for socket.socket() timeout functions""" + + def setUp(self): + self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.addr_remote = ('www.python.org.', 80) + def testConnectTimeout(self): # Choose a private address that is unlikely to exist to prevent # failures due to the connect succeeding before the timeout. @@ -161,10 +167,31 @@ class TimeoutTestCase(unittest.TestCase): "timeout (%g) is %g seconds more than expected (%g)" %(_delta, self.fuzz, _timeout)) + def testSend(self): + # Test send() timeout + # couldn't figure out how to test it + pass + + def testSendto(self): + # Test sendto() timeout + # couldn't figure out how to test it + pass + + def testSendall(self): + # Test sendall() timeout + # couldn't figure out how to test it + pass + + +class UDPTimeoutTestCase(TimeoutTestCase): + """UDP test case for socket.socket() timeout functions""" + + def setUp(self): + self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + def testRecvfromTimeout(self): # Test recvfrom() timeout _timeout = 2 - self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.sock.settimeout(_timeout) # Prevent "Address already in use" socket exceptions support.bind_port(self.sock, self.localhost) @@ -178,25 +205,14 @@ class TimeoutTestCase(unittest.TestCase): "timeout (%g) is %g seconds more than expected (%g)" %(_delta, self.fuzz, _timeout)) - def testSend(self): - # Test send() timeout - # couldn't figure out how to test it - pass - - def testSendto(self): - # Test sendto() timeout - # couldn't figure out how to test it - pass - - def testSendall(self): - # Test sendall() timeout - # couldn't figure out how to test it - pass - def test_main(): support.requires('network') - support.run_unittest(CreationTestCase, TimeoutTestCase) + support.run_unittest( + CreationTestCase, + TCPTimeoutTestCase, + UDPTimeoutTestCase, + ) if __name__ == "__main__": test_main() |