Commit b20c5002 authored by Facundo Batista's avatar Facundo Batista

The basic test cases of poplib.py.

parent 1b1c3473
import socket
import threading
import poplib
import time
from unittest import TestCase
from test import test_support
def server(evt):
serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serv.settimeout(3)
serv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serv.bind(("", 9091))
serv.listen(5)
try:
conn, addr = serv.accept()
except socket.timeout:
pass
else:
conn.send("+ Hola mundo\n")
conn.close()
finally:
serv.close()
evt.set()
class GeneralTests(TestCase):
def setUp(self):
self.evt = threading.Event()
threading.Thread(target=server, args=(self.evt,)).start()
time.sleep(.1)
def tearDown(self):
self.evt.wait()
def testBasic(self):
# connects
pop = poplib.POP3("localhost", 9091)
pop.sock.close()
def testTimeoutDefault(self):
# default
pop = poplib.POP3("localhost", 9091)
self.assertTrue(pop.sock.gettimeout() is None)
pop.sock.close()
def testTimeoutValue(self):
# a value
pop = poplib.POP3("localhost", 9091, timeout=30)
self.assertEqual(pop.sock.gettimeout(), 30)
pop.sock.close()
def testTimeoutNone(self):
# None, having other default
previous = socket.getdefaulttimeout()
socket.setdefaulttimeout(30)
try:
pop = poplib.POP3("localhost", 9091, timeout=None)
finally:
socket.setdefaulttimeout(previous)
self.assertEqual(pop.sock.gettimeout(), 30)
pop.sock.close()
def test_main(verbose=None):
test_support.run_unittest(GeneralTests)
if __name__ == '__main__':
test_main()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment