@@ -59,31 +59,19 @@ def assertStderrEqual(self, stderr, expected, msg=None):
5959
6060
6161class DeprecationWarningTests (BaseTestCase ):
62- def setUp (self ):
63- BaseTestCase .setUp (self )
64- self ._saved_warn = warnings .warn
65- self ._warn_calls = []
66- warnings .warn = self ._record_warn
67-
68- def tearDown (self ):
69- warnings .warn = self ._saved_warn
70- BaseTestCase .tearDown (self )
71-
72- def _record_warn (self , * args ):
73- """A warnings.warn function that records calls."""
74- self ._warn_calls .append (args )
75- self ._saved_warn (* args )
76-
7762 def testCloseFdsWarning (self ):
7863 quick_process = [sys .executable , "-c" , "import sys; sys.exit(0)" ]
79- subprocess .call (quick_process , close_fds = True )
80- self .assertEqual ([], self ._warn_calls )
81- subprocess .call (quick_process , close_fds = False )
82- self .assertEqual ([], self ._warn_calls )
83- self .assertWarns (DeprecationWarning , subprocess .call , quick_process )
84- self .assertEqual (1 , len (self ._warn_calls ))
85- self .assertIn ('close_fds parameter was not specified' ,
86- self ._warn_calls [0 ][0 ])
64+ with warnings .catch_warnings (record = True ) as warnlist :
65+ warnings .simplefilter ("always" )
66+ subprocess .call (quick_process , close_fds = True )
67+ self .assertEqual ([], warnlist )
68+ subprocess .call (quick_process , close_fds = False )
69+ self .assertEqual ([], warnlist )
70+ with self .assertWarns (DeprecationWarning ) as wm :
71+ subprocess .Popen (quick_process ).wait ()
72+ self .assertEqual (1 , len (wm .warnings ))
73+ self .assertIn ('close_fds parameter was not specified' ,
74+ str (wm .warnings [0 ]))
8775
8876
8977class ProcessTestCase (BaseTestCase ):
0 commit comments