def wait_for_node(self): start = time.time() self.success = False self.waiting_for_node = True while self.waiting_for_node and \ time.time() - start < float(self.settings["timeout"]): time.sleep(0.1) if self.waiting_for_node: message = dig_for_message() if not message: message = Message("node_red.timeout") else: message.reply("node_red.timeout") self.bus.emit(message) self.waiting_for_node = False return self.success
def wait_for_something(self): self.log.debug("{name}: waiting".format(name=self.skill_name)) start = time.time() self.success = False self.waiting = True while self.waiting and \ time.time() - start < float(self.settings["timeout"]): time.sleep(0.1) if self.waiting: message = dig_for_message() if not message: message = Message(self.namespace + ".timeout") else: message.reply(self.namespace + ".timeout") self.bus.emit(message) self.waiting = False self.log.debug("{name}: wait ended".format(name=self.skill_name)) return self.success
class TestMessageMethods(unittest.TestCase): """This tests the Message class functions """ def setUp(self): """This sets up some basic messages for testing. """ self.empty_message = Message("empty") self.message1 = Message("enclosure.reset") self.message2 = Message("enclosure.system.blink", {'target': 4}, {'target': 5}) self.message3 = Message("status", "OK") # serialized results of each of the messages self.serialized = [ '{"data": {}, "type": "empty", "context": null}', '{"data": {}, "type": "enclosure.reset",\ "context": null}', '{"data": { "target": 4}, \ "type": "enclosure.system.blink", \ "context": {"target": 5}}', '{"data": "OK", "type": "status", \ "context": null}' ] def test_serialize(self): """This test the serialize method """ self.assertEqual(self.empty_message.serialize(), self.serialized[0]) self.assertEqual(self.message1.serialize(), self.serialized[1]) self.assertEqual(self.message2.serialize(), self.serialized[2]) self.assertEqual(self.message3.serialize(), self.serialized[3]) def test_deserialize(self): """This test's the deserialize method """ messages = [] # create the messages from the serialized strings above messages.append(Message.deserialize(self.serialized[0])) messages.append(Message.deserialize(self.serialized[1])) messages.append(Message.deserialize(self.serialized[2])) # check the created messages match the strings self.assertEqual(messages[0].serialize(), self.serialized[0]) self.assertEqual(messages[1].serialize(), self.serialized[1]) self.assertEqual(messages[2].serialize(), self.serialized[2]) def test_reply(self): """This tests the reply method This is probably incomplete as the use of the reply message escapes me. """ message = self.empty_message.reply("status", "OK") self.assertEqual(message.serialize(), '{"data": "OK", "type": "status", "context": {}}') message = self.message1.reply("status", "OK") self.assertEqual(message.serialize(), '{"data": "OK", "type": "status", "context": {}}') message = self.message2.reply("status", "OK") def test_publish(self): """This is for testing the publish method TODO: Needs to be completed """ pass
class TestMessageMethods(unittest.TestCase): """This tests the Message class functions """ def setUp(self): """This sets up some basic messages for testing. """ self.empty_message = Message("empty") self.message1 = Message("enclosure.reset") self.message2 = Message("enclosure.system.blink", {'target': 4}, {'target': 5}) self.message3 = Message("status", "OK") # serialized results of each of the messages self.serialized = ['{"data": {}, "type": "empty", "context": null}', '{"data": {}, "type": "enclosure.reset",\ "context": null}', '{"data": { "target": 4}, \ "type": "enclosure.system.blink", \ "context": {"target": 5}}', '{"data": "OK", "type": "status", \ "context": null}'] def test_serialize(self): """This test the serialize method """ self.assertEqual(self.empty_message.serialize(), self.serialized[0]) self.assertEqual(self.message1.serialize(), self.serialized[1]) self.assertEqual(self.message2.serialize(), self.serialized[2]) self.assertEqual(self.message3.serialize(), self.serialized[3]) def test_deserialize(self): """This test's the deserialize method """ messages = [] # create the messages from the serialized strings above messages.append(Message.deserialize(self.serialized[0])) messages.append(Message.deserialize(self.serialized[1])) messages.append(Message.deserialize(self.serialized[2])) # check the created messages match the strings self.assertEqual(messages[0].serialize(), self.serialized[0]) self.assertEqual(messages[1].serialize(), self.serialized[1]) self.assertEqual(messages[2].serialize(), self.serialized[2]) def test_reply(self): """This tests the reply method This is probably incomplete as the use of the reply message escapes me. """ message = self.empty_message.reply("status", "OK") self.assertEqual(message.serialize(), '{"data": "OK", "type": "status", "context": {}}') message = self.message1.reply("status", "OK") self.assertEqual(message.serialize(), '{"data": "OK", "type": "status", "context": {}}') message = self.message2.reply("status", "OK") def test_publish(self): """This is for testing the publish method TODO: Needs to be completed """ pass