home *** CD-ROM | disk | FTP | other *** search
- import socket
- import threading
- import telnetlib
- import time
-
- from unittest import TestCase
- from test import test_support
-
- HOST = test_support.HOST
-
- def server(evt, serv):
- serv.listen(5)
- evt.set()
- try:
- conn, addr = serv.accept()
- except socket.timeout:
- pass
- finally:
- serv.close()
- evt.set()
-
- class GeneralTests(TestCase):
-
- def setUp(self):
- self.evt = threading.Event()
- self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- self.sock.settimeout(3)
- self.port = test_support.bind_port(self.sock)
- threading.Thread(target=server, args=(self.evt,self.sock)).start()
- self.evt.wait()
- self.evt.clear()
- time.sleep(.1)
-
- def tearDown(self):
- self.evt.wait()
-
- def testBasic(self):
- # connects
- telnet = telnetlib.Telnet(HOST, self.port)
- telnet.sock.close()
-
- def testTimeoutDefault(self):
- self.assertTrue(socket.getdefaulttimeout() is None)
- socket.setdefaulttimeout(30)
- try:
- telnet = telnetlib.Telnet("localhost", self.port)
- finally:
- socket.setdefaulttimeout(None)
- self.assertEqual(telnet.sock.gettimeout(), 30)
- telnet.sock.close()
-
- def testTimeoutNone(self):
- # None, having other default
- self.assertTrue(socket.getdefaulttimeout() is None)
- socket.setdefaulttimeout(30)
- try:
- telnet = telnetlib.Telnet(HOST, self.port, timeout=None)
- finally:
- socket.setdefaulttimeout(None)
- self.assertTrue(telnet.sock.gettimeout() is None)
- telnet.sock.close()
-
- def testTimeoutValue(self):
- telnet = telnetlib.Telnet("localhost", self.port, timeout=30)
- self.assertEqual(telnet.sock.gettimeout(), 30)
- telnet.sock.close()
-
- def testTimeoutOpen(self):
- telnet = telnetlib.Telnet()
- telnet.open("localhost", self.port, timeout=30)
- self.assertEqual(telnet.sock.gettimeout(), 30)
- telnet.sock.close()
-
-
- def test_main(verbose=None):
- test_support.run_unittest(GeneralTests)
-
- if __name__ == '__main__':
- test_main()
-