def restore_alarm( self, event_code, transmitter_time=None, reference=None, transmitter_area=None, section=None, section_text=None, detector=None, detector_text=None, additional_info=None, position=None, ) -> AlarmResponse: """ Restores an alarm in the receiver. :param str event_code: The event code of the alarm. :param str transmitter_time: Time of the device or system sending the alarm :param str reference: A reference that will show up in logs on the alarm receiver. :param str transmitter_area: Can be used to control different action at the alarm operator on the same transmitter and event_code. :param str section: Section ID :param str section_text: Section Description :param str detector: Detector ID :param str detector_text: Detector Description :param str|dict|list|set|tuple additional_info: Extra information about alarm :param str position: Position data :return: :class:`AlarmResponse` from alarm receiver .. todo:: Is all the extra fields necessary on alarm restore? """ alarm_request = AlarmRequest( event_code=event_code, transmitter_type=self.transmitter_type, transmitter_code=self.transmitter_code, authentication=self.authentication, receiver=self.receiver_id, alarm_type="RE", transmitter_time=transmitter_time, reference=reference, transmitter_area=transmitter_area, section=section, section_text=section_text, detector=detector, detector_text=detector_text, additional_info=additional_info, position=position, ) logger.info(f"Sending restore alarm request: {alarm_request}") return self._send_alarm(alarm_request)
def test_alarm_request_additional_info_dict_to_string(): alarm = AlarmRequest( event_code="AL", authentication="123456678", additional_info={"test": "test", "test2": 1}, transmitter_code="IK00001", transmitter_type="SV001", receiver="Test", ) assert alarm.additional_info_text == "test: test \r\ntest2: 1 \r\n"
def test_alarm_request_additional_info_list_to_string_max_length(): # create a dict that would be longer than 2000 chars test_list = list() for x in enumerate(range(0, 2000)): test_list.append(str(x)) assert len(str(test_list)) > 2000 alarm = AlarmRequest(event_code="AL", authentication="123456678", additional_info=test_list, transmitter_code="IK00001", transmitter_type="SV001", receiver="Test", ) assert len(alarm.additional_info_text) == 1990
def test_alarm_request_additional_info_string_max_length(): test_string = "{:<2200}".format("Teststring") assert len(test_string) > 2000 alarm = AlarmRequest( event_code="AL", authentication="123456678", additional_info=test_string, transmitter_code="IK00001", transmitter_type="SV001", receiver="Test", ) assert len(alarm.additional_info_text) == 1997