@@ -91,7 +91,6 @@ def _set_term_winsz(fd, winsz):
91
91
92
92
# Marginal testing of pty suite. Cannot do extensive 'do or fail' testing
93
93
# because pty code is not too portable.
94
- # XXX(nnorwitz): these tests leak fds when there is an error.
95
94
class PtyTest (unittest .TestCase ):
96
95
def setUp (self ):
97
96
old_alarm = signal .signal (signal .SIGALRM , self .handle_sig )
@@ -227,6 +226,7 @@ def test_openpty(self):
227
226
def test_fork (self ):
228
227
debug ("calling pty.fork()" )
229
228
pid , master_fd = pty .fork ()
229
+ self .addCleanup (os .close , master_fd )
230
230
if pid == pty .CHILD :
231
231
# stdout should be connected to a tty.
232
232
if not os .isatty (1 ):
@@ -305,13 +305,14 @@ def test_fork(self):
305
305
##else:
306
306
## raise TestFailed("Read from master_fd did not raise exception")
307
307
308
- os .close (master_fd )
309
-
310
308
def test_master_read (self ):
309
+ # XXX(nnorwitz): this test leaks fds when there is an error.
311
310
debug ("Calling pty.openpty()" )
312
311
master_fd , slave_fd = pty .openpty ()
313
312
debug (f"Got master_fd '{ master_fd } ', slave_fd '{ slave_fd } '" )
314
313
314
+ self .addCleanup (os .close , master_fd )
315
+
315
316
debug ("Closing slave_fd" )
316
317
os .close (slave_fd )
317
318
@@ -321,7 +322,6 @@ def test_master_read(self):
321
322
except OSError : # Linux
322
323
data = b""
323
324
324
- os .close (master_fd )
325
325
self .assertEqual (data , b"" )
326
326
327
327
class SmallPtyTests (unittest .TestCase ):
0 commit comments