Skip to content

Commit 4bf1e57

Browse files
authored
Merge pull request #1679 from sbraz/fix_pypy_tests
tests: fix test_socket_manager.py with PyPy
2 parents 45da211 + 8f20925 commit 4bf1e57

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

supervisor/tests/test_socket_manager.py

+15
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""Test suite for supervisor.socket_manager"""
22

3+
import gc
34
import os
45
import unittest
56
import socket
@@ -49,6 +50,7 @@ def test_on_delete(self):
4950
proxy = self._makeOne(Subject(), on_delete=self.setOnDeleteCalled)
5051
self.assertEqual(5, proxy.getValue())
5152
proxy = None
53+
gc_collect()
5254
self.assertTrue(self.on_deleteCalled)
5355

5456
class ReferenceCounterTest(unittest.TestCase):
@@ -91,6 +93,9 @@ def test_decr_at_zero_raises_error(self):
9193

9294
class SocketManagerTest(unittest.TestCase):
9395

96+
def tearDown(self):
97+
gc_collect()
98+
9499
def _getTargetClass(self):
95100
from supervisor.socket_manager import SocketManager
96101
return SocketManager
@@ -154,10 +159,12 @@ def test_socket_lifecycle(self):
154159
self.assertTrue(sock_manager.is_prepared())
155160
self.assertFalse(sock_manager.socket.close_called)
156161
sock = None
162+
gc_collect()
157163
# Socket not actually closed yet b/c ref ct is 1
158164
self.assertTrue(sock_manager.is_prepared())
159165
self.assertFalse(sock_manager.socket.close_called)
160166
sock2 = None
167+
gc_collect()
161168
# Socket closed
162169
self.assertFalse(sock_manager.is_prepared())
163170
self.assertTrue(sock_manager.socket.close_called)
@@ -170,6 +177,7 @@ def test_socket_lifecycle(self):
170177
self.assertNotEqual(sock_id, sock3_id)
171178
# Drop ref ct to zero
172179
del sock3
180+
gc_collect()
173181
# Now assert that socket is closed
174182
self.assertFalse(sock_manager.is_prepared())
175183
self.assertTrue(sock_manager.socket.close_called)
@@ -184,6 +192,7 @@ def test_logging(self):
184192
self.assertEqual('Creating socket %s' % repr(conf), logger.data[0])
185193
# socket close
186194
del sock
195+
gc_collect()
187196
self.assertEqual(len(logger.data), 2)
188197
self.assertEqual('Closing socket %s' % repr(conf), logger.data[1])
189198

@@ -232,3 +241,9 @@ def test_close_requires_prepared_socket(self):
232241
self.fail()
233242
except Exception as e:
234243
self.assertEqual(e.args[0], 'Socket has not been prepared')
244+
245+
def gc_collect():
246+
if __pypy__ is not None:
247+
gc.collect()
248+
gc.collect()
249+
gc.collect()

0 commit comments

Comments
 (0)