def test_shouldNotifyUserWhenHeIsSubscribedToQueue(self): branch = self._config.get_branches()[0] self._merge_dispatcher.subscribe(self._first_user_id, branch) self._notifier.reset_mock() self._merge_dispatcher.merge(self._second_user_id, branch) self._merge_dispatcher.merge(self._third_user_id, branch) self._notifier.notify.assert_any_call( self._model.get_user(self._first_user_id), NotifierActions.starts_merge, Notifier.ActionData(self._model.get_user(self._second_user_id), branch)) self._notifier.notify.assert_any_call( self._model.get_user(self._first_user_id), NotifierActions.joins_queue, Notifier.ActionData(self._model.get_user(self._third_user_id), branch))
def test_shouldSendMessageIfSomeoneStartedMergeFixInYourQueue(self): self._presentation_model.notify( self._whom_user, NotifierActions.starts_fix, Notifier.MergeFixActionData(self._action_user, self._branch, None)) message = str.format(Messages.ACTION_MESSAGE_STARTS_FIX, self._action_user.get_name(), self._branch) self._message_sender.send.assert_called_once_with( self._whom_user_id, message)
def test_shouldSendMessageIfUserFinishedMerge(self): self._presentation_model.notify( self._whom_user, NotifierActions.done_merge, Notifier.ActionData(self._action_user, self._branch)) message = self.generate_message(self._action_user, self._branch, NotifierActions.done_merge) self._message_sender.send.assert_called_once_with( self._whom_user_id, message)
def test_shouldSendMessageIfMergeStartedBySameUserAsSender(self): self._presentation_model.notify( self._whom_user, NotifierActions.starts_merge, Notifier.ActionData(self._whom_user, self._branch)) message = str.format(Messages.ACTION_MESSAGE_STARTED_MERGE, self._branch) self._message_sender.send.assert_called_once_with( self._whom_user_id, message)
def test_shouldSendMessageIfUserReadyToMerge(self): self._presentation_model.notify( self._whom_user, NotifierActions.ready_to_merge, Notifier.ActionData(self._whom_user, self._branch)) message = str.format(Messages.ACTION_MESSAGE_YOUR_MERGE_TURN, self._branch) self._message_sender.request_merge_confirmation.assert_called_once_with( self._whom_user_id, message, self._branch)
def test_shouldSendMessageIfYouWasPushedAwayByMergeFix(self): self._presentation_model.notify( self._whom_user, NotifierActions.starts_fix, Notifier.MergeFixActionData(self._action_user, self._branch, self._whom_user)) message = str.format(Messages.ACTION_MESSAGE_PUSH_BACK, self._action_user.get_name(), self._branch) self._message_sender.send.assert_called_once_with( self._whom_user_id, message)
def test_shouldNotifyWhenUserJoinsQueue(self): branch = self._config.get_branches()[0] self._merge_dispatcher.merge(self._first_user_id, branch) self._notifier.reset_mock() self._merge_dispatcher.merge(self._second_user_id, branch) self._notifier.notify.assert_any_call( self._model.get_user(self._first_user_id), NotifierActions.joins_queue, Notifier.ActionData(self._model.get_user(self._second_user_id), branch))
def test_shouldSendMessageIfYouKickedYourself(self): self._presentation_model.notify( self._whom_user, NotifierActions.kicks_himself, Notifier.KickActionData(self._whom_user, self._branch, self._whom_user)) message = str.format( "You've kicked yourself from branch <b>{}</b>. Tell me, are you alright? Next " "time use /cancel command, it much more effective.", self._branch) self._message_sender.send.assert_called_once_with( self._whom_user_id, message)
def test_shouldSendMessageIfSomeoneKickedHimself(self): self._presentation_model.notify( self._whom_user, NotifierActions.kicks_himself, Notifier.KickActionData(self._action_user, self._branch, self._action_user)) message = str.format( "<i>{0}</i> has kicked himself from branch <b>{1}</b>. What a strange way for suicide.", self._action_user.get_name(), self._branch) self._message_sender.send.assert_called_once_with( self._whom_user_id, message)
def test_shouldSendMessageIfSomeoneKickedYou(self): self._presentation_model.notify( self._whom_user, NotifierActions.kicks_user, Notifier.KickActionData(self._action_user, self._branch, self._whom_user)) message = str.format( "<i>{0}</i> has kicked you from branch <b>{1}</b>. Nothing personal, only business.", self._action_user.get_name(), self._branch) self._message_sender.send.assert_called_once_with( self._whom_user_id, message)
def test_shouldNotifyWhenUserExitsQueue(self): branch = self._config.get_branches()[0] self._merge_dispatcher.merge(self._first_user_id, branch) self._merge_dispatcher.merge(self._second_user_id, branch) self._notifier.reset_mock() self._merge_dispatcher.cancel(self._second_user_id, branch) self._notifier.notify.assert_called_once_with( self._model.get_user(self._first_user_id), NotifierActions.exits_queue, Notifier.ActionData(self._model.get_user(self._second_user_id), branch))
def test_shouldSendMessageIfSomeoneKickedUser(self): self._presentation_model.notify( self._whom_user, NotifierActions.kicks_user, Notifier.KickActionData(self._action_user, self._branch, self._kicked_user)) message = str.format( "<i>{0}</i> has kicked {1} from branch <b>{2}</b>. Even I shocked by this cruelty.", self._action_user.get_name(), self._kicked_user.get_name(), self._branch) self._message_sender.send.assert_called_once_with( self._whom_user_id, message)
def test_shouldNotifyActiveUserWhenHeIsPutBackToQueue(self): branch = self._config.get_branches()[0] self._merge_dispatcher.merge(self._first_user_id, branch) self._notifier.reset_mock() self._merge_dispatcher.fix(self._second_user_id, branch) self._notifier.notify.assert_any_call( self._model.get_user(self._first_user_id), NotifierActions.starts_fix, Notifier.MergeFixActionData( self._model.get_user(self._second_user_id), branch, self._model.get_user(self._first_user_id)))
def test_shouldNotifyWhenNextUserFromQueueReadyToMergeAfterDone(self): branch = self._config.get_branches()[0] self._merge_dispatcher.merge(self._first_user_id, branch) self._merge_dispatcher.merge(self._second_user_id, branch) self._merge_dispatcher.merge(self._third_user_id, branch) self._notifier.reset_mock() self._merge_dispatcher.done(self._first_user_id, branch) self._notifier.notify.assert_any_call( self._model.get_user(self._second_user_id), NotifierActions.ready_to_merge, Notifier.ActionData(self._model.get_user(self._second_user_id), branch))
def test_shouldNotifyIfUserStartsMergeWhenHeIsNext(self): branch = self._config.get_branches()[0] self._merge_dispatcher.merge(self._first_user_id, branch) self._merge_dispatcher.merge(self._second_user_id, branch) self._merge_dispatcher.merge(self._third_user_id, branch) self._merge_dispatcher.cancel(self._first_user_id, branch) self._merge_dispatcher.confirm_merge(self._second_user_id, branch) self._notifier.notify.assert_any_call( self._model.get_user(self._third_user_id), NotifierActions.starts_merge, Notifier.ActionData(self._model.get_user(self._second_user_id), branch))
def test_shouldNotifyUsersWhenSomeoneStartsFix(self): branch = self._config.get_branches()[0] self._merge_dispatcher.merge(self._first_user_id, branch) self._merge_dispatcher.merge(self._second_user_id, branch) self._notifier.reset_mock() self._merge_dispatcher.fix(self._third_user_id, branch) self._notifier.notify.assert_any_call( self._model.get_user(self._first_user_id), NotifierActions.starts_fix, Notifier.MergeFixActionData( self._model.get_user(self._third_user_id), branch, self._model.get_user(self._first_user_id)))
def test_shouldNotifyOnPrepareWhenNoActiveUserBurUserInQueue(self): branch = self._config.get_branches()[0] self._merge_dispatcher.merge(self._first_user_id, branch) self._merge_dispatcher.merge(self._second_user_id, branch) self._merge_dispatcher.merge(self._third_user_id, branch) self._merge_dispatcher.done(self._first_user_id, branch) self._notifier.reset_mock() self._merge_dispatcher.prepare() self._notifier.notify.assert_any_call( self._model.get_user(self._second_user_id), NotifierActions.ready_to_merge, Notifier.ActionData(self._model.get_user(self._second_user_id), branch))
def test_shouldNotifyWhenUserExitsQueueAndNoActiveUser(self): branch = self._config.get_branches()[0] self._merge_dispatcher.merge(self._first_user_id, branch) self._merge_dispatcher.merge(self._second_user_id, branch) self._merge_dispatcher.merge(self._third_user_id, branch) self._merge_dispatcher.cancel(self._first_user_id, branch) self._notifier.reset_mock() self._merge_dispatcher.cancel(self._second_user_id, branch) self._notifier.notify.assert_any_call( self._model.get_user(self._third_user_id), NotifierActions.ready_to_merge, Notifier.ActionData(self._model.get_user(self._third_user_id), branch))
def test_shouldNotifyUsersWhenUserKicksHimself(self): branch = self._config.get_branches()[0] self._merge_dispatcher.merge(self._first_user_id, branch) self._merge_dispatcher.merge(self._second_user_id, branch) self._merge_dispatcher.kick(self._first_user_id, self._first_user_id, branch) action_data = Notifier.KickActionData( self._model.get_user(self._first_user_id), branch, self._model.get_user(self._first_user_id)) self._notifier.notify.assert_any_call( self._model.get_user(self._first_user_id), NotifierActions.kicks_himself, action_data) self._notifier.notify.assert_any_call( self._model.get_user(self._second_user_id), NotifierActions.kicks_himself, action_data)
def test_shouldNotSendMessageIfSameUserAsSenderFinishedMerge(self): self._presentation_model.notify( self._whom_user, NotifierActions.done_merge, Notifier.ActionData(self._whom_user, self._branch)) self._message_sender.send.assert_not_called()
def test_shouldNotSendMessageIfSameUserAsSenderExitsQueue(self): self._presentation_model.notify( self._whom_user, NotifierActions.exits_queue, Notifier.ActionData(self._whom_user, self._branch)) self._message_sender.send.assert_not_called()
def test_shouldNotSendMessageIfUserReadyToMerge(self): self._presentation_model.notify( self._whom_user, NotifierActions.ready_to_merge, Notifier.ActionData(self._action_user, self._branch)) self._message_sender.send.assert_not_called()
def test_baseClassShouldRaiseNotImplementedException(self): notifier = Notifier() with self.assertRaises(NotImplementedError): notifier.notify(User("Jack Daniels", 123), NotifierActions.starts_merge, None)