With tests

This commit is contained in:
Tim Bentley 2013-03-17 17:37:19 +00:00
parent 0809c8e192
commit 9f8b236f90
2 changed files with 47 additions and 1 deletions

View File

@ -100,7 +100,6 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog):
self.stacked_layout.widget(tabIndex).save()
# if the display of image background are changing we need to regenerate the image cache
if u'images_config_updated' in self.processes or u'config_screen_changed' in self.processes:
print "found"
self.register_post_process(u'images_regenerate')
# Now lets process all the post save handlers
while self.processes:

View File

@ -108,3 +108,50 @@ class TestSettingsForm(TestCase):
# WHEN testing the processing stack
# THEN the processing stack should still have two items
assert len(self.form.processes) == 2, u'No new processes should have been added to the stack'
def register_multiple_functions_test(self):
"""
Test running the settings form and adding multiple functions
"""
# GIVEN: Three functions registered to be call
dummy1 = MagicMock()
dummy2 = MagicMock()
dummy3 = MagicMock()
Registry().register_function(u'images_config_updated', dummy1)
Registry().register_function(u'config_screen_changed', dummy2)
Registry().register_function(u'images_regenerate', dummy3)
# WHEN: The Images have been changed and the form sumbitted
self.form.register_post_process(u'images_config_updated')
self.form.accept()
# THEN Images_regenerate should have been called.
assert dummy1.call_count == 1, u'dummy1 should have been called once'
assert dummy2.call_count == 0, u'dummy2 should not have been called once'
assert dummy3.call_count == 1, u'dummy3 should have been called once'
# WHEN: The Images have been changed and the form submitted
dummy1.reset_mock()
dummy2.reset_mock()
dummy3.reset_mock()
self.form.register_post_process(u'config_screen_changed')
self.form.accept()
# THEN Images_regenerate should have been called.
assert dummy1.call_count == 0, u'dummy1 should not have been called once'
assert dummy2.call_count == 1, u'dummy2 should have been called once'
assert dummy3.call_count == 1, u'dummy3 should have been called once'
# WHEN: The Images have been changed and the form submitted
dummy1.reset_mock()
dummy2.reset_mock()
dummy3.reset_mock()
self.form.register_post_process(u'config_screen_changed')
self.form.register_post_process(u'images_config_updated')
self.form.accept()
# THEN Images_regenerate should have been called.
assert dummy1.call_count == 1, u'dummy1 should have been called once'
assert dummy2.call_count == 1, u'dummy2 should have been called once'
assert dummy3.call_count == 1, u'dummy3 should have been called once'