@@ -110,10 +110,11 @@ def side_effect(*args, **kwargs):
110110
111111 def test_01_k2400_iv_backend (self ):
112112 # GLOBAL PATCH for sleep is critical here
113+ mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (5 ))
114+ mock_sleep .start ()
115+ self .addCleanup (mock_sleep .stop )
116+
113117 with patch ('pymeasure.instruments.keithley.Keithley2400' ) as MockInst :
114- mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (5 ))
115- mock_sleep .start ()
116- self .addCleanup (mock_sleep .stop )
117118
118119 spy = MockInst .return_value
119120 with patch ('builtins.input' , side_effect = ['100' , '10' , 'test_file' ]), \
@@ -123,12 +124,12 @@ def test_01_k2400_iv_backend(self):
123124 spy .enable_source .assert_called ()
124125
125126 def test_02_lakeshore_backend (self ):
127+ mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (15 ))
128+ mock_sleep .start ()
129+ self .addCleanup (mock_sleep .stop )
126130 with patch ('pyvisa.ResourceManager' ) as MockRM , \
127131 patch ('tkinter.Tk' ), \
128132 patch ('tkinter.filedialog.asksaveasfilename' , return_value = "test.csv" ):
129- mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (15 ))
130- mock_sleep .start ()
131- self .addCleanup (mock_sleep .stop )
132133
133134 spy = MockRM .return_value .open_resource .return_value
134135 spy .query .side_effect = [
@@ -146,10 +147,10 @@ def test_02_lakeshore_backend(self):
146147 "Lakeshore_350_340.Backends.T_Control_L350_Simple_Backend_v10" )
147148
148149 def test_03_k6517b_pyro_backend (self ):
150+ mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (10 ))
151+ mock_sleep .start ()
152+ self .addCleanup (mock_sleep .stop )
149153 with patch ('pymeasure.instruments.keithley.Keithley6517B' ) as MockInst :
150- mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (10 ))
151- mock_sleep .start ()
152- self .addCleanup (mock_sleep .stop )
153154
154155 spy = MockInst .return_value
155156 spy .current = 1.23e-9
@@ -171,10 +172,10 @@ def test_04_lcr_keysight_backend(self):
171172 "LCR_Keysight_E4980A.Backends.CV_KE4980A_Simple_Backend_v10" )
172173
173174 def test_05_delta_simple (self ):
175+ mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (10 ))
176+ mock_sleep .start ()
177+ self .addCleanup (mock_sleep .stop )
174178 with patch ('pyvisa.ResourceManager' ) as MockRM :
175- mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (10 ))
176- mock_sleep .start ()
177- self .addCleanup (mock_sleep .stop )
178179
179180 MockRM .return_value .open_resource .return_value
180181 inputs = ['0' , '1e-5' , '1e-6' , 'test_file' , 'y' , 'y' ]
@@ -201,11 +202,11 @@ def test_06_delta_sensing(self):
201202 print (" [SKIP] Module not found, skipping." )
202203
203204 def test_07_lockin_backend (self ):
205+ mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (5 ))
206+ mock_sleep .start ()
207+ self .addCleanup (mock_sleep .stop )
204208 with patch ('pyvisa.ResourceManager' ) as MockRM :
205- mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (5 ))
206209 spy = MockRM .return_value .open_resource .return_value
207- mock_sleep .start ()
208- self .addCleanup (mock_sleep .stop )
209210
210211 spy .query .side_effect = [
211212 "SRS,SR830,s/n12345,ver1.07" , # *IDN?
@@ -218,11 +219,12 @@ def test_07_lockin_backend(self):
218219 def test_08_combined_2400_2182 (self ):
219220 # THIS WAS THE TEST CAUSING THE HANG
220221 # We suspect input mismatch or resource opening hang.
222+ mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (10 ))
223+ mock_sleep .start ()
224+ self .addCleanup (mock_sleep .stop )
221225 with patch ('pyvisa.ResourceManager' ) as MockRM :
222- mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (10 ))
223226 mock_pymeasure = patch ('pymeasure.instruments.keithley.Keithley2400' )
224227 mock_pymeasure .start ()
225- self .addCleanup (mock_sleep .stop )
226228
227229 rm = MockRM .return_value
228230 k2182_spy = MagicMock ()
@@ -232,18 +234,17 @@ def test_08_combined_2400_2182(self):
232234 # Add extra inputs just in case the script asks for more than
233235 # expected
234236 inputs = ['10' , '1' , 'test_file' , 'y' , 'y' , 'y' , 'y' ]
235- mock_sleep .start ()
236237 with patch ('builtins.input' , side_effect = inputs ), \
237238 patch ('pandas.DataFrame.to_csv' ):
238239 self .run_module_safely (
239240 "Keithley_2400_Keithley_2182.Backends.IV_K2400_K2182_Backend_v1" )
240241 mock_pymeasure .stop ()
241242
242243 def test_09_poling (self ):
244+ mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (5 ))
245+ mock_sleep .start ()
246+ self .addCleanup (mock_sleep .stop )
243247 with patch ('pymeasure.instruments.keithley.Keithley6517B' ):
244- mock_sleep = patch ('time.sleep' , side_effect = self .get_circuit_breaker (5 ))
245- mock_sleep .start ()
246- self .addCleanup (mock_sleep .stop )
247248
248249 inputs = ['100' , '10' , 'y' ]
249250 with patch ('builtins.input' , side_effect = inputs ):
0 commit comments