def test_frame_from_raw(self): """Test parse FrameGetVersionConfirmation from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue(isinstance(frame, FrameGetVersionConfirmation)) self.assertEqual(frame.software_version, "1.2.3.4.5.6") self.assertEqual(frame.hardware_version, 23) self.assertEqual(frame.product, "KLF 200")
def test_frame2_from_raw(self): """Test parse EXAMPLE_FRAME2 from raw.""" slip = bytearray.fromhex(self.EXAMPLE_FRAME2.replace(':', '')) raw, _ = get_next_slip(slip) frame = frame_from_raw(bytes(raw)) self.assertTrue(isinstance(frame, FrameGetNodeInformationNotification)) self.assertEqual(frame.node_id, 4) self.assertEqual(frame.order, 4) self.assertEqual(frame.placement, 4) self.assertEqual(frame.name, 'Fenster Büro') self.assertEqual(frame.velocity, Velocity.DEFAULT) self.assertEqual(frame.node_type, NodeTypeWithSubtype.WINDOW_OPENER_WITH_RAIN_SENSOR) self.assertEqual(frame.product_group, 213) self.assertEqual(frame.product_type, 7) self.assertEqual(frame.node_variation, NodeVariation.NOT_SET) self.assertEqual(frame.power_mode, 1) self.assertEqual(frame.build_number, 30) self.assertEqual(frame.serial_number, '53:36:27:26:10:2f:00:81') self.assertEqual(frame.state, 5) self.assertEqual(str(Position(frame.current_position)), '100 %') self.assertEqual(str(Position(frame.target)), '100 %') self.assertEqual(str(Position(frame.current_position_fp1)), '0 %') self.assertEqual(str(Position(frame.current_position_fp2)), 'UNKNOWN') self.assertEqual(str(Position(frame.current_position_fp3)), 'UNKNOWN') self.assertEqual(str(Position(frame.current_position_fp4)), 'UNKNOWN') self.assertEqual(frame.remaining_time, 0) self.assertEqual(frame.timestamp, 1326315944) test_ts = datetime.fromtimestamp(1326315944).strftime( '%Y-%m-%d %H:%M:%S') self.assertEqual(frame.timestamp_formatted, test_ts) self.assertEqual(str(frame.alias_array), 'd802=6400, d803=ba00') # Crosscheck, Serializing: self.assertEqual(bytes(frame), raw)
def test_frame_from_raw(self): """Test parse FrameGetNodeInformationNotification from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue(isinstance(frame, FrameGetNodeInformationNotification)) self.assertEqual(frame.node_id, 23) self.assertEqual(frame.order, 1234) self.assertEqual(frame.placement, 2) self.assertEqual(frame.name, "Fnord23") self.assertEqual(frame.velocity, Velocity.SILENT) self.assertEqual(frame.node_type, NodeTypeWithSubtype.INTERIOR_VENETIAN_BLIND) self.assertEqual(frame.product_group, 23) self.assertEqual(frame.product_type, 13) self.assertEqual(frame.node_variation, NodeVariation.TOPHUNG) self.assertEqual(frame.power_mode, 1) self.assertEqual(frame.build_number, 7) self.assertEqual(frame.serial_number, '01:02:03:04:05:06:06:08') self.assertEqual(frame.state, 1) self.assertEqual(Position(frame.current_position).position, 12) self.assertEqual(Position(frame.target).position, 123) self.assertEqual(Position(frame.current_position_fp1).position, 1234) self.assertEqual(Position(frame.current_position_fp2).position, 2345) self.assertEqual(Position(frame.current_position_fp3).position, 3456) self.assertEqual(Position(frame.current_position_fp4).position, 4567) self.assertEqual(frame.remaining_time, 1) self.assertEqual(frame.timestamp, 50528771) self.assertEqual( str(frame.alias_array), '3031=3233, 3435=3637, 3839=3031, 3233=3435, 3637=3839')
def test_str(self): """Test string representation of FrameNodeInformationChangedNotification.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertEqual( str(frame), '<FrameNodeInformationChangedNotification node_id=23 name="Fnord23" ' 'order=1234 placement=2 node_variation="NodeVariation.TOPHUNG"/>')
def test_frame_from_raw(self): """Test parse FrameGetStateConfirmation from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue(isinstance(frame, FrameGetStateConfirmation)) self.assertEqual(frame.gateway_state, GatewayState.BEACON_MODE_NOT_CONFIGURED) self.assertEqual(frame.gateway_sub_state, GatewaySubState.PERFORMING_TASK_COMMAND)
def test_frame_from_raw(self): """Test parse FrameActivateSceneConfirmation from raw.""" frame = frame_from_raw(b'\x00\x06\x04\x13\x02\x03\xe8\xf8') self.assertTrue(isinstance(frame, FrameActivateSceneConfirmation)) self.assertEqual( frame.status, ActivateSceneConfirmationStatus.ERROR_REQUEST_REJECTED) self.assertEqual(frame.session_id, 1000)
def test_frame_from_raw(self): """Test parsing FramePasswordEnterRequest from raw bytes.""" frame = frame_from_raw( b'\x00#0\x00fnord\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00b') self.assertTrue(isinstance(frame, FramePasswordEnterRequest)) self.assertEqual(frame.password, 'fnord')
def test_frame_from_raw(self): """Test parse FrameCommandRemainingTimeNotification from raw.""" frame = frame_from_raw(b'\x00\t\x03\x03\x03\xe8\x17*\x059\xe3') self.assertTrue( isinstance(frame, FrameCommandRemainingTimeNotification)) self.assertEqual(frame.session_id, 1000) self.assertEqual(frame.index_id, 23) self.assertEqual(frame.node_parameter, 42) self.assertEqual(frame.seconds, 1337)
def test_frame_from_raw(self): """Test parse FrameCommandRunStatusNotification from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue(isinstance(frame, FrameCommandRunStatusNotification)) self.assertEqual(frame.session_id, 1000) self.assertEqual(frame.status_id, 7) self.assertEqual(frame.index_id, 23) self.assertEqual(frame.node_parameter, 42) self.assertEqual(frame.parameter_value, 1337)
def test_frame_from_raw(self): """Test parse FrameActivateSceneRequest from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue(isinstance(frame, FrameActivateSceneRequest)) self.assertEqual(frame.scene_id, 4) self.assertEqual(frame.session_id, 1000) self.assertEqual(frame.originator, Originator.RAIN) self.assertEqual(frame.priority, Priority.USER_LEVEL_2) self.assertEqual(frame.velocity, Velocity.SILENT)
def test_frame_from_raw(self): """Test parse FrameNodeInformationChangedNotification from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue( isinstance(frame, FrameNodeInformationChangedNotification)) self.assertEqual(frame.node_id, 23) self.assertEqual(frame.order, 1234) self.assertEqual(frame.placement, 2) self.assertEqual(frame.node_variation, NodeVariation.TOPHUNG) self.assertEqual(frame.name, "Fnord23")
def test_frame_from_raw(self): """Test parse FrameDiscoverNodesNotification from raw.""" frame = frame_from_raw( b'\x00\x86\x01\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x82') self.assertTrue(isinstance(frame, FrameDiscoverNodesNotification))
def test_str(self): """Test string representation of FrameGetNodeInformationNotification.""" frame = frame_from_raw(self.EXAMPLE_FRAME) test_ts = datetime.fromtimestamp(50528771).strftime( '%Y-%m-%d %H:%M:%S') self.assertEqual( str(frame), '<FrameGetNodeInformationNotification node_id=23 order=1234 placement=2 ' 'name=\'Fnord23\' velocity=Velocity.SILENT node_type=\'NodeTypeWithSubtype.INTERIOR_VENETIAN_BLIND\' ' 'product_group=23 product_type=13 node_variation=NodeVariation.TOPHUNG ' 'power_mode=1 build_number=7 serial_number=\'01:02:03:04:05:06:06:08\' state=1 ' 'current_position=\'0x000C\' target=\'0x007B\' current_position_fp1=\'0x04D2\' ' 'current_position_fp2=\'0x0929\' current_position_fp3=\'0x0D80\' current_position_fp4=\'0x11D7\' ' 'remaining_time=1 time=\'{}\' ' 'alias_array=\'3031=3233, 3435=3637, 3839=3031, 3233=3435, 3637=3839\'/>' .format(test_ts))
def test_frame_from_raw(self): """Test parse FrameGetProtocolVersionRequest from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue(isinstance(frame, FrameGetProtocolVersionRequest))
def test_frame_from_raw(self): """Test parse FrameActivationLogUpdatedNotification from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue( isinstance(frame, FrameActivationLogUpdatedNotification))
def test_frame_from_raw(self): """Test parse FrameCommandSendConfirmation from raw.""" frame = frame_from_raw(b'\x00\x06\x03\x01\x03\xe8\x00\xef') self.assertTrue(isinstance(frame, FrameCommandSendConfirmation)) self.assertEqual(frame.status, CommandSendConfirmationStatus.REJECTED) self.assertEqual(frame.session_id, 1000)
def test_frame_from_raw(self): """Test parse FrameErrorNotification from raw.""" frame = frame_from_raw(b'\x00\x04\x00\x00\x02\x06') self.assertTrue(isinstance(frame, FrameErrorNotification)) self.assertEqual(frame.error_type, ErrorType.ErrorOnFrameStructure)
def test_frame_from_raw(self): """Test parse FrameSetNodeNameConfirmation from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue(isinstance(frame, FrameSetNodeNameConfirmation)) self.assertEqual(frame.status, SetNodeNameConfirmationStatus.OK) self.assertEqual(frame.node_id, 23)
def test_frame_from_raw(self): """Test parse FrameGetAllNodesInformationConfirmation from raw.""" frame = frame_from_raw(b'\x00\x05\x02\x03\x00\x17\x13') self.assertTrue( isinstance(frame, FrameGetAllNodesInformationConfirmation)) self.assertEqual(frame.number_of_nodes, 23)
def test_frame_from_raw(self): """Test parse FrameSessionFinishedNotification from raw.""" frame = frame_from_raw(b'\x00\x05\x03\x04\x03\xe8\xe9') self.assertTrue(isinstance(frame, FrameSessionFinishedNotification)) self.assertEqual(frame.session_id, 1000)
def test_frame_from_raw(self): """Test parse FrameHouseStatusMonitorDisableRequest from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue( isinstance(frame, FrameHouseStatusMonitorDisableRequest))
def test_frame_from_raw(self): """Test parse FrameSetUTCConfirmation from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue(isinstance(frame, FrameSetUTCConfirmation))
def test_frame_from_raw(self): """Test parse FrameDiscoverNodesConfirmation from raw.""" frame = frame_from_raw(b'\x00\x03\x01\x04\x06') self.assertTrue(isinstance(frame, FrameDiscoverNodesConfirmation))
def test_frame_from_raw(self): """Test parse FrameSetUTCRequest from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue(isinstance(frame, FrameSetUTCRequest)) self.assertEqual(frame.timestamp, self.EXAMPLE_TS)
def test_frame_from_raw(self): """Test parse FrameGetNodeInformationConfirmation from raw.""" frame = frame_from_raw(b'\x00\x05\x02\x01\x00\x17\x11') self.assertTrue(isinstance(frame, FrameGetNodeInformationConfirmation)) self.assertEqual(frame.node_id, 23)
def test_frame_from_raw(self): """Test parse FrameGetAllNodesInformationRequest from raw.""" frame = frame_from_raw(b'\x00\x03\x02\x02\x03') self.assertTrue(isinstance(frame, FrameGetAllNodesInformationRequest))
def test_frame_from_raw(self): """Test parse FramePasswordEnterConfirmation from raw.""" frame = frame_from_raw(b'\x00\x040\x01\x014') self.assertTrue(isinstance(frame, FramePasswordEnterConfirmation)) self.assertEqual(frame.status, PasswordEnterConfirmationStatus.FAILED)
def test_frame_from_raw(self): """Test parse FrameHouseStatusMonitorEnableConfirmation from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue( isinstance(frame, FrameHouseStatusMonitorEnableConfirmation))
def test_frame_from_raw(self): """Test parse FrameGetSceneListRequest from raw.""" frame = frame_from_raw(b'\x00\x03\x04\x0c\x0b') self.assertTrue(isinstance(frame, FrameGetSceneListRequest))
def test_frame_from_raw(self): """Test parse FrameSetNodeNameRequest from raw.""" frame = frame_from_raw(self.EXAMPLE_FRAME) self.assertTrue(isinstance(frame, FrameSetNodeNameRequest)) self.assertEqual(frame.node_id, 4) self.assertEqual(frame.name, "Fnord")