def test_Register(self): led = Device("name", self.message_handler) self.assertEqual(led.connect(), True) time.sleep(0.1) connected_nodes = self.gw.get_connected_nodes() self.assertEqual(len(connected_nodes), 1) node = connected_nodes[led.node_id] self.assertEqual(node.name, led.name) self.assertEqual(node.registered, True) last_seen = node.last_seen led._send_status() time.sleep(0.1) connected_nodes = self.gw.get_connected_nodes() self.assertEqual(len(connected_nodes), 1) node = connected_nodes[led.node_id] self.assertEqual(node.name, led.name) self.assertEqual(node.registered, True) self.assertNotEqual(node.last_seen, last_seen) # calling connect again should change nothing self.assertEqual(led.connect(), True) connected_nodes = self.gw.get_connected_nodes() self.assertEqual(len(connected_nodes), 1)
def test_moreThan30Nodes(self): for i in range(0, 30): dev = Device('%s' % i, self.message_handler) if i == 29: # too many nodes registered self.assertEqual(dev.connect(), False) else: self.assertEqual(dev.connect(), True) time.sleep(0.1) connected_nodes = self.gw.get_connected_nodes() self.assertEqual(len(connected_nodes), 29)
def test_sendACKForUnknownMessage(self): dev = Device("name", self.message_handler) self.assertEqual(dev.connect(), True) header = MessageHeader(node_id = dev.node_id, group_id = dev.group_id, wants_ack = False) m = ACKMessage(header) self.message_handler.write_message_from_device(m) time.sleep(0.1) self.assertEqual(len(self.gw.get_connected_nodes()), 1)