def test_on_clicked_new_color(self): """ Test the on_click method when a new color has been chosen and is valid """ # GIVEN: An instance of ColorButton, and a set _color attribute widget = ColorButton() self.mocked_change_color.reset_mock() self.mocked_color_changed.reset_mock() widget._color = '#000000' # WHEN: The on_clicked method is called, and the color is valid, and different to the existing color self.mocked_qt_widgets.QColorDialog.getColor.return_value = MagicMock( **{'isValid.return_value': True, 'name.return_value': '#ffffff'}) widget.on_clicked() # THEN: change_color should have been called and the colorChanged signal should have been emitted self.mocked_change_color.assert_called_once_with('#ffffff') self.mocked_color_changed.emit.assert_called_once_with('#ffffff')
def test_on_clicked_invalid_color(self): """ Test the on_click method when an invalid color has been supplied """ # GIVEN: An instance of ColorButton, and a set _color attribute widget = ColorButton() self.mocked_change_color.reset_mock() self.mocked_color_changed.reset_mock() widget._color = '#000000' # WHEN: The on_clicked method is called, and the color is invalid self.mocked_qt_widgets.QColorDialog.getColor.return_value = MagicMock(**{'isValid.return_value': False}) widget.on_clicked() # THEN: change_color should not have been called and the colorChanged signal should not have been emitted assert self.mocked_change_color.called is False, \ 'change_color should not have been called with an invalid color' assert self.mocked_color_changed.emit.called is False, \ 'colorChange signal should not have been emitted with an invalid color'
def test_on_clicked_same_color(self): """ Test the on_click method when a new color has not been chosen """ # GIVEN: An instance of ColorButton, and a set _color attribute widget = ColorButton() self.mocked_change_color.reset_mock() self.mocked_color_changed.reset_mock() widget._color = '#000000' # WHEN: The on_clicked method is called, and the color is valid, but the same as the existing color self.mocked_qt_widgets.QColorDialog.getColor.return_value = MagicMock( **{'isValid.return_value': True, 'name.return_value': '#000000'}) widget.on_clicked() # THEN: change_color should not have been called and the colorChanged signal should not have been emitted assert self.mocked_change_color.called is False, \ 'change_color should not have been called when the color has not changed' assert self.mocked_color_changed.emit.called is False, \ 'colorChange signal should not have been emitted when the color has not changed'