blob: 0a3604e5ae1e7dfb5ade24df25f3d399beb01a31 [file] [log] [blame]
Guido van Rossumd8faa362007-04-27 19:54:29 +00001import socket
2import threading
3import telnetlib
4import time
5
6from unittest import TestCase
7from test import test_support
8
9
10def server(evt):
11 serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
12 serv.settimeout(3)
13 serv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
14 serv.bind(("", 9091))
15 serv.listen(5)
16 try:
17 conn, addr = serv.accept()
18 except socket.timeout:
19 pass
20 finally:
21 serv.close()
22 evt.set()
23
24class GeneralTests(TestCase):
25
26 def setUp(self):
27 self.evt = threading.Event()
28 threading.Thread(target=server, args=(self.evt,)).start()
29 time.sleep(.1)
30
31 def tearDown(self):
32 self.evt.wait()
33
34 def testBasic(self):
35 # connects
36 telnet = telnetlib.Telnet("localhost", 9091)
37 telnet.sock.close()
38
39 def testTimeoutDefault(self):
40 # default
41 telnet = telnetlib.Telnet("localhost", 9091)
42 self.assertTrue(telnet.sock.gettimeout() is None)
43 telnet.sock.close()
44
45 def testTimeoutValue(self):
46 # a value
47 telnet = telnetlib.Telnet("localhost", 9091, timeout=30)
48 self.assertEqual(telnet.sock.gettimeout(), 30)
49 telnet.sock.close()
50
51 def testTimeoutDifferentOrder(self):
52 telnet = telnetlib.Telnet(timeout=30)
53 telnet.open("localhost", 9091)
54 self.assertEqual(telnet.sock.gettimeout(), 30)
55 telnet.sock.close()
56
57 def testTimeoutNone(self):
58 # None, having other default
59 previous = socket.getdefaulttimeout()
60 socket.setdefaulttimeout(30)
61 try:
62 telnet = telnetlib.Telnet("localhost", 9091, timeout=None)
63 finally:
64 socket.setdefaulttimeout(previous)
65 self.assertEqual(telnet.sock.gettimeout(), 30)
66 telnet.sock.close()
67
68
69
70def test_main(verbose=None):
71 test_support.run_unittest(GeneralTests)
72
73if __name__ == '__main__':
74 test_main()