Example #1
0
    def setUp(self):
        self.model = MagicMock(spec=ValidationModel)

        self.adjusted_x = 150
        self.adjusted_y = 250

        self.model.get_current_pixel_source_point.return_value = (self.adjusted_x, self.adjusted_y)

        self.original_x = 100
        self.original_y = 200

        def reset_location():
            self.model.get_current_pixel_source_point.return_value = (self.original_x, self.original_y)

        self.model.reset_current_source_location.side_effect = reset_location

        self.view = Mock(spec=ApplicationView)
        self.controller = AbstractController(self.model, self.view)
        self.autoplay_manager = Mock(spec=AutoplayManager)
        self.controller.autoplay_manager = self.autoplay_manager
Example #2
0
class AbstractControllerTest(unittest.TestCase):
    def setUp(self):
        self.model = MagicMock(spec=ValidationModel)

        self.adjusted_x = 150
        self.adjusted_y = 250

        self.model.get_current_pixel_source_point.return_value = (self.adjusted_x, self.adjusted_y)

        self.original_x = 100
        self.original_y = 200

        def reset_location():
            self.model.get_current_pixel_source_point.return_value = (self.original_x, self.original_y)

        self.model.reset_current_source_location.side_effect = reset_location

        self.view = Mock(spec=ApplicationView)
        self.controller = AbstractController(self.model, self.view)
        self.autoplay_manager = Mock(spec=AutoplayManager)
        self.controller.autoplay_manager = self.autoplay_manager

    def test_reset_source_location_updates_model(self):
        self.controller.on_reset_source_location()
        assert_that(self.model.reset_current_source_location.call_count,
                    equal_to(1))

    def test_reset_source_location_redraws_circle_at_original_location(self):
        self.controller.on_reset_source_location()
        self.view.refresh_markers.assert_called_once_with()

        # Don't need to redraw whole image
        assert_that(self.view.display.call_count, equal_to(0))

    def test_reset_colormap(self):
        self.controller.on_reset_colormap()
        self.view.reset_colormap.assert_called_once_with()

    def test_toggle_reticule(self):
        self.controller.on_toggle_reticule_key()
        self.view.toggle_reticule.assert_called_once_with()

    def test_enable_disable_autoplay(self):
        self.controller.on_enable_autoplay()
        self.autoplay_manager.start_autoplay.assert_called_once_with()

        self.controller.on_disable_autoplay()
        self.autoplay_manager.stop_autoplay.assert_called_once_with()

    def test_display_current_image(self):
        cutout = Mock(spec=SourceCutout)
        self.model.get_current_cutout.return_value = cutout

        self.controller.display_current_image()
        self.view.display.assert_called_once_with(cutout)
        self.view.update_displayed_data.assert_called_once_with(
            self.model.get_reading_data(), self.model.get_header_data_list()
        )

        self.model.acknowledge_image_displayed.assert_called_once_with()

    def test_stop_waiting_for_item_when_loaded(self):
        image_loading_dialog_manager = Mock(spec=ImageLoadingDialogManager)
        self.controller.image_loading_dialog_manager = image_loading_dialog_manager

        displayable_item = Mock()
        event = Mock()
        event.data = displayable_item

        self.controller.on_image_loaded(event)

        image_loading_dialog_manager.set_item_done.assert_called_once_with(
            displayable_item)

    def test_enable_disable_autosync(self):
        self.controller.on_enable_auto_sync()
        self.model.enable_synchronization.assert_called_once_with()

        self.controller.on_disable_auto_sync()
        self.model.disable_synchronization.assert_called_once_with()