From 871f79c8f2dee43b313142ed9ddc2a414252fe9a Mon Sep 17 00:00:00 2001 From: Zsin Skri Date: Wed, 17 Jul 2019 13:38:57 +0200 Subject: [PATCH] bpd tests: close only existing sockets Close sockets in `finally`-clauses only after they have actually been created. --- test/test_player.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/test/test_player.py b/test/test_player.py index 77ebef7d4..b9d35281b 100644 --- a/test/test_player.py +++ b/test/test_player.py @@ -324,19 +324,25 @@ class BPDTestHelper(unittest.TestCase, TestHelper): ) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sock.connect((host, port)) + try: + sock.connect((host, port)) - sock2 = None - if second_client: - sock2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sock2.connect((host, port)) - yield MPCClient(sock, do_hello), MPCClient(sock2, do_hello) - else: - yield MPCClient(sock, do_hello) + if second_client: + sock2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + try: + sock2.connect((host, port)) + yield ( + MPCClient(sock, do_hello), + MPCClient(sock2, do_hello), + ) + finally: + sock2.close() + + else: + yield MPCClient(sock, do_hello) + finally: + sock.close() finally: - sock.close() - if sock2: - sock2.close() server.terminate() server.join(timeout=0.2)