Skip to content

Commit

Permalink
more DropTarget tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jabdoa2 committed May 11, 2016
1 parent af8674e commit 5e272b6
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 5 deletions.
Expand Up @@ -46,6 +46,8 @@ drop_targets:
switch: switch6
reset_coil: coil2
knockdown_coil: coil3
knockdown_events: knock_knock
reset_events: reset_target

drop_target_banks:
left_bank:
Expand Down
Expand Up @@ -10,4 +10,4 @@ drop_target_banks:
drop_targets: left4, left5, left6
reset_coils: coil2
reset_events:
drop_targets_left_2_complete: 1s
left_bank_2_down: 1s
72 changes: 68 additions & 4 deletions mpf/tests/test_DropTargets.py
Expand Up @@ -55,13 +55,77 @@ def test_drop_target_bank(self):
self.assertFalse(self.machine.drop_targets.left3.complete)
self.assertFalse(self.machine.drop_target_banks.left_bank.complete)

def test_knockdown_and_reset(self):
self.machine.coils.coil2.pulse = MagicMock()
self.machine.coils.coil3.pulse = MagicMock()

self.assertFalse(self.machine.drop_targets.left6.complete)

# knock it down
self.post_event("knock_knock")
self.advance_time_and_run(.3)
assert not self.machine.coils.coil2.pulse.called
self.machine.coils.coil3.pulse.assert_called_once_with()
self.machine.coils.coil3.pulse = MagicMock()

self.hit_switch_and_run("switch6", 1)
self.assertTrue(self.machine.drop_targets.left6.complete)

# reset again
self.post_event("reset_target")
self.advance_time_and_run(.3)
self.machine.coils.coil2.pulse.assert_called_once_with()
assert not self.machine.coils.coil3.pulse.called

self.release_switch_and_run("switch6", 1)
self.assertFalse(self.machine.drop_targets.left6.complete)

def test_drop_targets_in_mode(self):
self.machine.modes['mode1'].start()
self.advance_time_and_run()

self.assertIn('left4', self.machine.drop_targets)
self.assertIn('left5', self.machine.drop_targets)
self.assertIn('left6', self.machine.drop_targets)
self.assertIn('left_bank_2', self.machine.drop_target_banks)
self.machine.coils.coil2.pulse = MagicMock()

self.assertFalse(self.machine.drop_targets.left4.complete)
self.assertFalse(self.machine.drop_targets.left5.complete)
self.assertFalse(self.machine.drop_targets.left6.complete)
self.assertFalse(self.machine.drop_target_banks.left_bank_2.complete)

self.hit_switch_and_run("switch4", 1)
self.hit_switch_and_run("switch5", 1)
self.assertTrue(self.machine.drop_targets.left4.complete)
self.assertTrue(self.machine.drop_targets.left5.complete)
self.assertFalse(self.machine.drop_targets.left6.complete)
self.assertFalse(self.machine.drop_target_banks.left_bank_2.complete)

self.machine.modes['mode1'].stop()
self.advance_time_and_run()

self.assertTrue(self.machine.drop_targets.left4.complete)
self.assertTrue(self.machine.drop_targets.left5.complete)
self.assertFalse(self.machine.drop_targets.left6.complete)
self.assertFalse(self.machine.drop_target_banks.left_bank_2.complete)

# should not complete the bank
self.hit_switch_and_run("switch6", .1)

self.assertTrue(self.machine.drop_targets.left4.complete)
self.assertTrue(self.machine.drop_targets.left5.complete)
self.assertTrue(self.machine.drop_targets.left6.complete)

self.assertFalse(self.machine.drop_target_banks.left_bank_2.complete)

self.post_event("reset_target")
self.release_switch_and_run("switch6", .1)

self.machine.modes['mode1'].start()
self.advance_time_and_run()

# mode is running again. should complete
self.hit_switch_and_run("switch6", .1)

self.assertTrue(self.machine.drop_targets.left4.complete)
self.assertTrue(self.machine.drop_targets.left5.complete)
self.assertTrue(self.machine.drop_targets.left6.complete)

self.assertTrue(self.machine.drop_target_banks.left_bank_2.complete)

0 comments on commit 5e272b6

Please sign in to comment.