bug fix in test__refcount.py: test_clean and test_timeout are used to be the same (test_clean)

This commit is contained in:
Denis Bilenko
2008-11-24 12:54:05 +06:00
parent 704e69569b
commit 9576e7f705

View File

@@ -21,8 +21,14 @@ def init_server():
s.listen(5) s.listen(5)
return s return s
def handle_request(s): def handle_request(s, raise_on_timeout):
try:
conn, address = s.accept() conn, address = s.accept()
except socket.timeout:
if raise_on_timeout:
raise
else:
return
#print 'handle_request - accepted' #print 'handle_request - accepted'
res = conn.recv(100) res = conn.recv(100)
assert res == 'hello', `res` assert res == 'hello', `res`
@@ -44,9 +50,9 @@ def make_request():
#print 'make_request - recvd %r' % res #print 'make_request - recvd %r' % res
#s.close() #s.close()
def run_interaction(run_client=True): def run_interaction(run_client):
s = init_server() s = init_server()
start_new_thread(handle_request, (s, )) start_new_thread(handle_request, (s, run_client))
if run_client: if run_client:
start_new_thread(make_request, ()) start_new_thread(make_request, ())
sleep(0.1+SOCKET_TIMEOUT) sleep(0.1+SOCKET_TIMEOUT)
@@ -54,7 +60,7 @@ def run_interaction(run_client=True):
#s.close() #s.close()
return weakref.ref(s.fd) return weakref.ref(s.fd)
def run_and_check(run_client=True): def run_and_check(run_client):
w = run_interaction(run_client=run_client) w = run_interaction(run_client=run_client)
if w(): if w():
print gc.get_referrers(w()) print gc.get_referrers(w())
@@ -67,12 +73,12 @@ def run_and_check(run_client=True):
class test(unittest.TestCase): class test(unittest.TestCase):
def test_clean_exit(self): def test_clean_exit(self):
run_and_check() run_and_check(True)
run_and_check() run_and_check(True)
def test_timeout_exit(self): def test_timeout_exit(self):
run_and_check(True) run_and_check(False)
run_and_check(True) run_and_check(False)
if __name__=='__main__': if __name__=='__main__':
unittest.main() unittest.main()