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