def __given_second_list_modifier_returns_no_jid_handles(self): UnExpectedJidHandles = [] UnExpectedJidHandles.append(JidHandle('someUserName', 'someCrazyJid')) UnExpectedJidHandles.append( JidHandle('someOtherUserName', 'someOtherJid')) with Spy() as FirstFilter: FirstFilter.getJidHandleGroupResult(any(), any(), any()) >> Result( [JidHandleGroup(UnExpectedJidHandles)]) with Spy() as SecondFilter: SecondFilter.getJidHandleGroupResult(any(), any(), any()) >> Result([]) with Spy() as ThirdFilter: ThirdFilter.getJidHandleGroupResult(any(), any(), any()) >> Result( [JidHandleGroup(UnExpectedJidHandles)]) with Spy() as MockedConfig: MockedConfig.getOrderedRecipientListModifiers() >> [ FirstFilter, SecondFilter, ThirdFilter ] MockedConfig.getJidHandleGroups() >> [ JidHandleGroup(UnExpectedJidHandles) ] self.__MyConfig = MockedConfig
def setUp(self): unittest.TestCase.setUp(self) self.__PresenceManager = None FirstJidHandle = JidHandle('someUserName', '*****@*****.**') SecondJidHandle = JidHandle('someOtherUserName', '*****@*****.**') self.__JidHandles = [FirstJidHandle, SecondJidHandle]
def __given_multiple_jid_handles_in_configuration_with_no_list_modifiers( self): ExpectedJidHandles = [] ExpectedJidHandles.append(JidHandle('someUserName', 'someCrazyJid')) ExpectedJidHandles.append( JidHandle('someOtherUserName', 'someOtherJid')) with Spy() as MockedConfig: MockedConfig.getJidHandleGroups() >> [ JidHandleGroup(ExpectedJidHandles) ] MockedConfig.getOrderedRecipientListModifiers() >> [] self.__MyConfig = MockedConfig return [JidHandleGroup(ExpectedJidHandles)]
def __sendForwardedMessageBackToSender(self, sender): messageBody = self._MessageBuilder.getMessageForwardedMessageBody() SenderJidHandle = [JidHandle('', sender)] MessageForwardedMessage = Message([JidHandleGroup(SenderJidHandle)], messageBody) self._ItBot.sendMessage(MessageForwardedMessage)
def test_isJidHandleAvailable_returns_false_if_jid_handle_is_extended_away_status(self): """ This is the option where you can select to appear as offline """ SomeJidHandle = JidHandle('someUserName', '*****@*****.**') self.__given_jid_handle_status_is_currently(SomeJidHandle, 'xa') self.assertFalse(self.__PresenceManager.isJidHandleAvailable(SomeJidHandle))
def __sendHelpDeskUserCouldNotForwardToGroupMessage(self, sender): messageBody = self._MessageBuilder.getHelpdeskUserCouldNotForwardToGroupMessageBody( ) SenderJidHandle = [JidHandle('', sender)] CouldNotForwardMessage = Message([JidHandleGroup(SenderJidHandle)], messageBody) self._ItBot.sendMessage(CouldNotForwardMessage)
def __sendHelpDeskUserConfirmationMessage(self, sender): messageBody = self._MessageBuilder.getHelpdeskUserConfirmationMessageBody( ) SenderJidHandle = [JidHandle('', sender)] HelpDeskUserConfirmationMessage = Message( [JidHandleGroup(SenderJidHandle)], messageBody) self._ItBot.sendMessage(HelpDeskUserConfirmationMessage)
def __given_pending_request_exists_and_has_timed_out(self): with Spy() as PresenceConfirmationManager: PresenceConfirmationManager.hasPendingRequest() >> True PresenceConfirmationManager.hasTimedOut() >> True PresenceConfirmationManager.startNewRequest() self.__PresenceConfirmationManager = PresenceConfirmationManager PreviousRequestedRecipient = [ JidHandle('somePreviousJid', '*****@*****.**') ] JidHandles = [JidHandle('someJid', '*****@*****.**')] JidHandleGroups = [JidHandleGroup(JidHandles)] with Spy() as RecipientChooser: RecipientChooser.getJidHandleGroupResult( any(), any()) >> Result(JidHandleGroups) RecipientChooser.getCurrentRequestedRecipient( ) >> PreviousRequestedRecipient self.__RecipientChooser = RecipientChooser relayMessageBody = 'Some Message Body' notificationMessageBody = 'Hey snoozer your message has been forwarded' with Stub() as MessageBuilder: MessageBuilder.getTimedOutNotificationMessageBody( any()) >> notificationMessageBody MessageBuilder.getPendingMessagesForRequestedRecipient( ) >> relayMessageBody self.__MessageBuilder = MessageBuilder self.__ExpectedForwardedMessage = Message(JidHandleGroups, relayMessageBody) self.__ExpectedNotificationMessage = Message( [JidHandleGroup(PreviousRequestedRecipient)], notificationMessageBody) self.__ExpectedRequesterNotificationMessage = Message( [JidHandleGroup(PreviousRequestedRecipient)], notificationMessageBody) with Spy() as ItBot: pass self.__ItBot = ItBot
def __given_pending_request_exists_and_has_timed_out_and_nobody_is_available( self): with Spy() as PresenceConfirmationManager: PresenceConfirmationManager.hasPendingRequest() >> True PresenceConfirmationManager.hasTimedOut() >> True self.__PresenceConfirmationManager = PresenceConfirmationManager PreviousRequestedRecipient = [ JidHandle('somePreviousJid', '*****@*****.**') ] RequesterJidHandles = [ JidHandle('someRequesterJid', '*****@*****.**') ] with Spy() as Filter: Filter.getRequesterJidHandles() >> RequesterJidHandles Filter.getCurrentRequestedRecipient() >> PreviousRequestedRecipient JidHandles = [JidHandle('someJid', '*****@*****.**')] JidHandleGroups = [JidHandleGroup(JidHandles)] with Spy() as RecipientChooser: RecipientChooser.getJidHandleGroupResult( any(), any()) >> Result(resultCode=Result.NOBODY_AVAILABLE) RecipientChooser.getRecipientListModifierByClass(any()) >> Filter self.__RecipientChooser = RecipientChooser nobodyAvailableMessageBody = 'Nobody here son!' with Spy() as MessageBuilder: MessageBuilder.getNobodyAvailableMessageBody( ) >> nobodyAvailableMessageBody self.__MessageBuilder = MessageBuilder self.__ExpectedRequesterNotificationMessage = Message( [JidHandleGroup(RequesterJidHandles)], nobodyAvailableMessageBody) with Spy() as ItBot: pass self.__ItBot = ItBot
def __given_first_list_modifier_returns_dont_send_message_result(self): with Spy() as FirstFilter: FirstFilter.getJidHandleGroupResult(any(), any(), any()) >> Result( resultCode=Result.DONT_SEND_ANY_MESSAGE) UnExpectedJidHandles = [] UnExpectedJidHandles.append(JidHandle('someUserName', 'someCrazyJid')) UnExpectedJidHandles.append( JidHandle('someOtherUserName', 'someOtherJid')) with Spy() as SecondFilter: SecondFilter.getJidHandleGroupResult( any(), any(), any()) >> Result(UnExpectedJidHandles) with Spy() as MockedConfig: MockedConfig.getOrderedRecipientListModifiers() >> [ FirstFilter, SecondFilter ] MockedConfig.getJidHandleGroups() >> [ JidHandleGroup([]), JidHandleGroup(UnExpectedJidHandles) ] self.__MyConfig = MockedConfig
def _getJidHandle(self): return JidHandle('someJid' + str(random()), 'someJid' + str(random()) + '@jid.com')
def test_getStatusMsg_returns_correct_status_msg(self): SomeJidHandle = JidHandle('someUserName', '*****@*****.**') expectedMsg = 'On vacation!' self.__given_jid_handle_status_msg_is_currently(SomeJidHandle, expectedMsg) self.assertEquals(expectedMsg, self.__PresenceManager.getStatusMsg(SomeJidHandle))
def test_isJidHandleAvailable_returns_false_if_jid_handle_is_not_found(self): '''This can happen if a JidHandle is invalid or if the person is currently logged off''' SomeJidHandle = JidHandle('someUserName', '*****@*****.**') self.assertFalse(self.__PresenceManager.isJidHandleAvailable(SomeJidHandle))
def test_isJidHandleAvailable_returns_true_if_jid_handle_status_is_chatty(self): SomeJidHandle = JidHandle('someUserName', '*****@*****.**') self.__given_jid_handle_status_is_currently(SomeJidHandle, 'chat') self.assertTrue(self.__PresenceManager.isJidHandleAvailable(SomeJidHandle))
def test_isJidHandleAvailable_returns_false_if_jid_handle_is_do_not_disturb_status(self): SomeJidHandle = JidHandle('someUserName', '*****@*****.**') self.__given_jid_handle_status_is_currently(SomeJidHandle, 'dnd') self.assertFalse(self.__PresenceManager.isJidHandleAvailable(SomeJidHandle))