Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions mpf/tests/machine_files/shots/config/test_shots.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ modes:
- mode1
- mode2
- mode3
- mode_test_persist_enable

switches:
switch_1:
Expand Down Expand Up @@ -60,6 +61,8 @@ switches:
number:
switch_28:
number:
switch_29:
number:

lights:
light_1:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#config_version=6

mode:
priority: 100

shot_profiles:
pe_profile:
advance_on_hit: false
states:
- name: pe_state_1
- name: pe_state_2

shots:
pe_test_property_disabled:
profile: pe_profile
switch: switch_29
start_enabled: false
persist_enable: false #field under test
disable_events: pe_test_disable_all_shots
enable_events: pe_test_enable_all_shots
pe_test_default:
switch: switch_29
profile: pe_profile
start_enabled: false
# persist_enable: default is true #field under test
disable_events: pe_test_disable_all_shots
enable_events: pe_test_enable_all_shots
pe_test_property_enabled:
switch: switch_29
profile: pe_profile
start_enabled: false
persist_enable: true #field under test
disable_events: pe_test_disable_all_shots
enable_events: pe_test_enable_all_shots
pe_test_property_enabled_default_enabled:
switch: switch_29
profile: pe_profile
start_enabled: true #field under test
persist_enable: true #field under test
disable_events: pe_test_disable_all_shots
enable_events: pe_test_enable_all_shots
56 changes: 56 additions & 0 deletions mpf/tests/test_Shots.py
Original file line number Diff line number Diff line change
Expand Up @@ -1021,3 +1021,59 @@ def test_jump_states(self):
self.advance_time_and_run()
self.post_event("state_event2")
self.assertEqual("None", shot2.state_name)

def test_persist_enable(self):
"""Test shot#persist_enable functionality"""
self.start_game()
test_mode = self.machine.modes["mode_test_persist_enable"]
test_mode.start()

shot_pe_test_property_disabled = self.machine.shots["pe_test_property_disabled"]
shot_pe_test_default = self.machine.shots["pe_test_default"]
shot_pe_test_property_enabled = self.machine.shots["pe_test_property_enabled"]
shot_pe_test_property_enabled_default_enabled = self.machine.shots["pe_test_property_enabled_default_enabled"]

# Check the configs
self.assertFalse(shot_pe_test_property_disabled.config['persist_enable'])
self.assertTrue(shot_pe_test_default.config['persist_enable'])
self.assertTrue(shot_pe_test_property_enabled.config['persist_enable'])
self.assertTrue(shot_pe_test_property_enabled_default_enabled.config['persist_enable'])

# Test clean start values - all are start_enabled: false
self.assertFalse(shot_pe_test_property_disabled.enabled)
self.assertFalse(shot_pe_test_default.enabled)
self.assertFalse(shot_pe_test_property_enabled.enabled)
self.assertTrue(shot_pe_test_property_enabled_default_enabled.enabled)

self.post_event("pe_test_enable_all_shots")

# Everything uses the same enable event
self.assertTrue(shot_pe_test_property_disabled.enabled)
self.assertTrue(shot_pe_test_default.enabled)
self.assertTrue(shot_pe_test_property_enabled.enabled)
self.assertTrue(shot_pe_test_property_enabled_default_enabled.enabled)

test_mode.stop()
test_mode.start()

# Default and true should preserve the enable, false should start false again
self.assertFalse(shot_pe_test_property_disabled.enabled) #TODO this is failing
self.assertTrue(shot_pe_test_default.enabled)
self.assertTrue(shot_pe_test_property_enabled.enabled)
self.assertTrue(shot_pe_test_property_enabled_default_enabled.enabled)

self.post_event("pe_test_disable_all_shots")

# Everything uses the same disable event
self.assertFalse(shot_pe_test_property_disabled.enabled)
self.assertFalse(shot_pe_test_default.enabled)
self.assertFalse(shot_pe_test_property_enabled.enabled)
self.assertFalse(shot_pe_test_property_enabled_default_enabled.enabled)

test_mode.stop()
test_mode.start()

self.assertFalse(shot_pe_test_property_disabled.enabled)
self.assertFalse(shot_pe_test_default.enabled)
self.assertFalse(shot_pe_test_property_enabled.enabled)
self.assertFalse(shot_pe_test_property_enabled_default_enabled.enabled)
Loading