@@ -175,6 +175,55 @@ def test_hold_activation_time(self):
175
175
self .advance_time_and_run (4 )
176
176
assert not self .machine .coils ["c_diverter" ].enable .called
177
177
178
+ @test_config ("test_hold_activation_time_template.yaml" )
179
+ def test_activation_time_template (self ):
180
+ diverter = self .machine .diverters ["d_test_activation_time_template" ]
181
+
182
+ self .machine .coils ["c_diverter" ].enable = MagicMock ()
183
+ self .machine .coils ["c_diverter" ].disable = MagicMock ()
184
+
185
+ self .assertFalse (diverter .enabled )
186
+ self .assertFalse (diverter .active )
187
+
188
+ self .machine .playfield .config ['default_source_device' ] = self .machine .ball_devices ["test_trough" ]
189
+ self .machine .playfield .add_ball ()
190
+
191
+ self .advance_time_and_run (1 )
192
+ self .assertTrue (diverter .enabled )
193
+ self .assertFalse (diverter .active )
194
+
195
+ self .hit_and_release_switch ("s_diverter" )
196
+ self .advance_time_and_run (0.5 )
197
+ self .assertTrue (diverter .enabled )
198
+ self .assertTrue (diverter .active )
199
+ self .machine .coils ["c_diverter" ].enable .assert_called_once_with ()
200
+ self .machine .coils ["c_diverter" ].enable = MagicMock ()
201
+ assert not self .machine .coils ["c_diverter" ].disable .called
202
+
203
+ self .advance_time_and_run (12 )
204
+ self .machine .coils ["c_diverter" ].disable .assert_called_once_with ()
205
+ assert not self .machine .coils ["c_diverter" ].enable .called
206
+
207
+ self .hit_and_release_switch ("s_playfield" )
208
+ self .machine_run ()
209
+ self .assertFalse (diverter .active )
210
+
211
+ self .hit_switch_and_run ("s_ball_switch1" , 1 )
212
+ self .machine .playfield .config ['default_source_device' ] = self .machine .ball_devices ["test_target" ]
213
+ self .machine .playfield .add_ball ()
214
+
215
+ self .advance_time_and_run (3 )
216
+ self .assertFalse (diverter .enabled )
217
+ self .assertFalse (diverter .active )
218
+
219
+ self .hit_and_release_switch ("s_diverter" )
220
+ self .advance_time_and_run (0.5 )
221
+ self .assertFalse (diverter .enabled )
222
+ self .assertFalse (diverter .active )
223
+
224
+ self .advance_time_and_run (4 )
225
+ assert not self .machine .coils ["c_diverter" ].enable .called
226
+
178
227
@test_config ("test_hold_no_activation_time.yaml" )
179
228
def test_hold_no_activation_time (self ):
180
229
diverter = self .machine .diverters ["d_test_hold" ]
0 commit comments