def _on_connected(self): """Helper handler that is called upon an iothub pipeline connect""" logger.info("Connection State - Connected") client_event_inbox = self._inbox_manager.get_client_event_inbox() event = client_event.ClientEvent(client_event.CONNECTION_STATE_CHANGE) client_event_inbox.put(event) # Ensure that all handlers are running now that connection is re-established. self._handler_manager.ensure_running()
def _on_background_exception(self, e): """Helper handler that is called upon an iothub pipeline background exception""" handle_exceptions.handle_background_exception(e) client_event_inbox = self._inbox_manager.get_client_event_inbox() # Only add a ClientEvent to the inbox if the Handler Manager is capable of dealing with it if self._handler_manager.handling_client_events: event = client_event.ClientEvent(client_event.BACKGROUND_EXCEPTION, e) client_event_inbox.put(event)
def _on_new_sastoken_required(self): """Helper handler that is called upon the iothub pipeline needing new SAS token""" logger.info("New SasToken required from user") client_event_inbox = self._inbox_manager.get_client_event_inbox() # Only add a ClientEvent to the inbox if the Handler Manager is capable of dealing with it if self._handler_manager.handling_client_events: event = client_event.ClientEvent( client_event.NEW_SASTOKEN_REQUIRED) client_event_inbox.put(event)
def _on_disconnected(self): """Helper handler that is called upon an iothub pipeline disconnect""" logger.info("Connection State - Disconnected") client_event_inbox = self._inbox_manager.get_client_event_inbox() event = client_event.ClientEvent(client_event.CONNECTION_STATE_CHANGE) client_event_inbox.put(event) # Locally stored method requests on client are cleared. # They will be resent by IoTHub on reconnect. self._inbox_manager.clear_all_method_requests() logger.info("Cleared all pending method requests due to disconnect")
async def test_handler_invoked(self, mocker, handler_name, handler_manager, handler_checker, handler, inbox, event): # Set the handler setattr(handler_manager, handler_name, handler) # Handler has not been called assert handler_checker.handler_called is False # Add the event to the client inbox inbox.put(event) await asyncio.sleep(0.1) # Handler has been called with the arguments from the event assert handler_checker.handler_call_count == 1 assert handler_checker.handler_call_args == event.args_for_user # Add a non-matching event ot the client event inbox non_matching_event = client_event.ClientEvent("NON_MATCHING_EVENT") inbox.put(non_matching_event) await asyncio.sleep(0.1) # Handler has not been called again assert handler_checker.handler_call_count == 1
def test_handler_invoked(self, mocker, handler_name, handler_manager, inbox, event): # Set the handler mock_handler = mocker.MagicMock() setattr(handler_manager, handler_name, mock_handler) # Handler has not been called assert mock_handler.call_count == 0 # Add the event to the client event inbox inbox.put(event) time.sleep(0.1) # Handler has been called with the arguments from the event assert mock_handler.call_count == 1 assert mock_handler.call_args == mocker.call(*event.args_for_user) # Add non-matching event to the client event inbox non_matching_event = client_event.ClientEvent("NON_MATCHING_EVENT") inbox.put(non_matching_event) time.sleep(0.1) # Handler has not been called again assert mock_handler.call_count == 1
def event(self, arbitrary_exception): return client_event.ClientEvent(client_event.BACKGROUND_EXCEPTION, arbitrary_exception)
def event(self): return client_event.ClientEvent(client_event.NEW_SASTOKEN_REQUIRED)
def event(self): return client_event.ClientEvent(client_event.CONNECTION_STATE_CHANGE)
def _on_new_sastoken_required(self): logger.info("New SasToken required from user") client_event_inbox = self._inbox_manager.get_client_event_inbox() event = client_event.ClientEvent(client_event.NEW_SASTOKEN_REQUIRED) client_event_inbox.put(event)